[task] | instruction_following [pass] | ✅ 통과 [title] | MapComponent [question] | IsInstanceMap, TileMapMode, IsDynamicMap 프로퍼티의 읽기 전용(ReadOnly) 여부 및 동기화(Sync) 여부를 단계별 번호 목록으로 나열하세요. [answer] | 요청하신 프로퍼티들의 속성을 정리하면 다음과 같습니다. 1. **IsInstanceMap** - 읽기 전용(ReadOnly): 아님 - 동기화(Sync): 아님 2. **TileMapMode** - 읽기 전용(ReadOnly): 예 - 동기화(Sync): 아님 3. **IsDynamicMap** - 읽기 전용(ReadOnly): 예 - 동기화(Sync): 아님 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 프로퍼티 속성 정의와 정확히 일치하며, 요청된 형식대로 명확하게 답변했습니다. [source_doc] | 맵을 관리하고, 맵의 고유 속성들을 변경할 수 있습니다. # Properties - **float AirAccelerationXFactor** 맵 내에 RigidbodyComponent를 가진 엔티티의 공중에서의 속도를 보정합니다. 값이 증가할수록 공중에서의 속도가 빨라집니다. - **float AirDecelerationXFactor** 맵 내에 RigidbodyComponent를 가진 엔티티가 공중에 있을 때, 입력이 없으면 X축 이동 속도가 얼마나 빠르게 멈추는지를 보정합니다. - **float FallSpeedMa
[task] | code [pass] | ✅ 통과 [title] | TouchReceiveComponent [question] | 엔티티에 TouchReceiveComponent를 추가하고, RelayEventToBehind 프로퍼티를 true로 설정한 후 HandleTouchEvent에서 self:MyMethod() 형태로 정의한 커스텀 메서드를 호출하여 터치 이벤트를 처리하는 스크립트를 작성해줘 [answer] | 요청하신 조건(엔티티에 `TouchReceiveComponent` 추가, `RelayEventToBehind` 프로퍼티를 `true`로 설정, `HandleTouchEvent`에서 `self:MyMethod()` 호출)를 반영한 mLua 스크립트입니다. 참고로 `TouchReceiveComponent`의 프로퍼티(`RelayEventToBehind` 등)는 에디터의 인스펙터에서 직접 설정하는 것이 일반적이며, 스크립트 코드 블록 내부에 `Property:` 블록으로 직접 선언하는 방식은 이 컴포넌트의 내장 프로퍼티를 재정의하는 것 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서와 규칙에 부합하는 정확한 코드와 설정 가이드를 제공했으며, 내장 컴포넌트 프로퍼티와 스크립트 프로퍼티의 차이를 명확히 설명하여 혼란을 방지했습니다. [source_doc] | 엔티티를 터치할 수 있게 되며 터치 시 동작을 제어할 수 있습니다. # Properties - **boolean AutoFitOnce [MakerOnly]** true로 설정하면 AvatarRendererComponent 또는 SpriteRendererComponent의 Scale 값에 맞추어 TouchArea 및 Offset 값을 자동으로 변경됩니다. 최초 한 번만 변경합니다. - **boolean AutoFitToSize** true로 설정하면 AvatarRendererComponent 또는 SpriteRenderer
[task] | code [pass] | ✅ 통과 [title] | InventoryComponent [question] | GetItemsWithType(Type itemType) 메서드를 사용하여 특정 타입의 아이템 목록을 가져와서 테이블 길이를 log()로 출력하는 스크립트를 작성해줘 [answer] | `InventoryComponent`의 `GetItemsWithType(Type itemType)` 메서드를 사용해 특정 타입의 아이템 목록을 가져오고, `#` 연산자로 테이블 길이를 확인한 뒤 `log()`로 출력하는 스크립트입니다. ```lua Property: [None] Type TargetItemType = Item Method: [server only] void OnBeginPlay() { local inventory = self.Entity.InventoryComponent local items = i [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서의 API 명세와 mLua 문법 규칙을 정확히 준수하여 질문에 대한 최적의 코드를 제공했습니다. [source_doc] | 소유한 아이템들을 관리하는 컴포넌트입니다. # Properties - **boolean IsInitialized [ReadOnly] [HideFromInspector]** 인벤토리의 초기화가 완료 여부를 확인합니다. 초기화된 이후 InventoryComponent 관련 기능이 정상 작동하게 됩니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [Hi
[task] | code [pass] | ✅ 통과 [title] | CameraComponent [question] | CameraComponent의 ConfineCameraArea를 false로 설정하고 ScreenOffset을 Vector2(0.5, 0.5)로 초기화한 뒤, HandleTouchEvent() 이벤트 핸들러에서 ShakeCamera(0.5, 0.3)를 호출하여 화면이 터치되면 0.3초 동안 진동하는 클라이언트 전용 스크립트를 작성해줘. [answer] | CameraComponent의 `ConfineCameraArea` 프로퍼티는 `[None]` 속성을 가지며, `ScreenOffset` 또한 `[None]` 속성을 가집니다. 따라서 이 값들은 스크립트 내 `OnBeginPlay` 생명주기 메서드에서 초기화할 수 있습니다. `ShakeCamera` 메서드는 `[Client]` 실행 공간에서만 사용 가능하며, `HandleTouchEvent`는 `[self]` 이벤트 핸들러로 등록됩니다. 요구사항에 따라 클라이언트 전용으로 동작하도록 스크립트를 작성합니다. ```lua Proper [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=3 coherence=4 complexity=3 verbosity=2 [judge_reason] | 요청된 기능을 정확히 구현했으나, `EnableInHierarchy`가 메서드가 아닌 읽기 전용 프로퍼티임에도 콜론(:)을 사용해 호출하는 문법 오류가 있으며, 불필요한 프로퍼티를 추가했습니다. [source_doc] | Entity를 바라보는 카메라 기능을 제공합니다. 카메라 간 화면 전환은 CameraService를 이용하세요. # Properties - **Vector2 CameraOffset** 카메라의 위치를 설정합니다. 월드 좌표 기준입니다. - **boolean ConfineCameraArea** 카메라가 비추는 범위를 맵의 발판 영역으로만 제한합니다. - **Vector2 Damping** 카메라가 대상을 추적하는 동안 대상이 SoftZone에 들어갈 때 카메라가 반응하는 속도를 조정합니다. 값이 작을수록 더욱 더 빠르게
[task] | instruction_following [pass] | ✅ 통과 [title] | YoutubePlayerCommonComponent [question] | 이 컴포넌트의 Methods를 호출하는 mLua 코드 예시를 출력하되, 설명은 주석으로만 작성하고 코드는 10줄 이내로 제한하세요. [answer] | ```lua Method: [client only] void TestYoutubeMethods() { -- 영상이 있는 엔티티의 컴포넌트 참조 local player = self.Entity.YoutubePlayerGUIComponent -- 재생, 일시정지, 정지, 재생위치 이동, 재생/일시정지 토글 호출 player:Play() player:Pause() player:ClearScreen() player:Jump(10) player:PlayPause() } ``` [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=3 coherence=4 complexity=2 verbosity=2 [judge_reason] | 컴포넌트 접근이 self.Entity.YoutubePlayerGUIComponent로 되어 있어 실제 컴포넌트 이름이 YoutubePlayerCommonComponent임을 명시한 문서와 다르고, 메서드 호출 순서가 논리적으로 모순되지만 전체 구조와 문법은 올바름. [source_doc] | Youtube 영상을 재생하는 기능을 제공합니다. YoutubePlayerWorldComponent와 YoutubePlayerGUIComponent의 부모 컴포넌트입니다. # Properties - **boolean Loop** 영상의 반복 재생 여부를 설정합니다. - **boolean PlayOnAwake** 월드 시작 시 영상 재생 여부를 설정합니다. - **float PlaySpeed [Sync]** 영상의 재생 속도를 설정합니다. 0.5부터 3 사이의 값을 사용할 수 있습니다. - **boolean Shuffl
[task] | code [pass] | ✅ 통과 [title] | MaskComponent [question] | EnableInHierarchy 프로퍼티의 값을 확인하여 true일 때만 MaskComponent의 Shape을 Rectangle으로 설정하는 [client only] OnInitialize() 메서드를 작성해줘 [answer] | `MaskComponent` 문서에 `EnableInHierarchy` 프로퍼티는 `Component`에서 상속받아 사용할 수 있습니다. 하지만 `MaskShape`의 구체적인 열거형 값(예: `Rectangle`)이 문서에 명시되어 있지 않아, 정확한 식별자를 지어낼 수 없습니다. 따라서 요청하신 조건(`true`일 때만 설정)의 로직 구조는 제공하되, `MaskShape`에 할당할 실제 값은 문서에 없는 내용임을 알리고, 코드에서 해당 부분을 주석으로 표시하겠습니다. ```lua Method: [client only] voi [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 없는 MaskShape.Rectangle 값을 지어내지 않고 주석으로 처리하여 정확성을 유지했으나, 요청한 코드를 실행 가능한 형태로 제공하지 못해 유용성이 다소 떨어집니다. [source_doc] | 마스크를 사용해 자식 UI Entity의 특정 영역만 보이게 할 수 있습니다. 회전 기능은 지원하지 않으며, 엔티티가 회전한 경우 정상적으로 동작하지 않을 수 있습니다. # Properties - **RectOffset Padding** 마스크의 상하좌우의 여유 공간을 설정합니다. - **MaskShape Shape** 마스크의 모양을 지정합니다. - **Vector2Int Softness** 마스크의 가장자리 영역부터 자연스럽게 번지게 할 영역을 정합니다. ##### inherited from Component:
[task] | instruction_following [pass] | ✅ 통과 [title] | YoutubePlayerCommonComponent [question] | YoutubePlayerCommonComponent에서 클라이언트에서만 실행되는 Methods의 이름과 매개변수 목록을 표로 정리하세요. [answer] | YoutubePlayerCommonComponent에서 클라이언트에서만 실행되는 Method와 매개변수는 다음과 같습니다. | Method 이름 | 매개변수 | | :--- | :--- | | `ClearScreen` | `string targetUserId = nil` | | `Jump` | `int32 timeInSeconds`, `string targetUserId = nil` | | `Pause` | `string targetUserId = nil` | | `Play` | `string targetUserId = nil` [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 클라이언트 전용 메서드 5개와 그 매개변수 목록을 정확하고 간결한 표 형식으로 제시했습니다. [source_doc] | Youtube 영상을 재생하는 기능을 제공합니다. YoutubePlayerWorldComponent와 YoutubePlayerGUIComponent의 부모 컴포넌트입니다. # Properties - **boolean Loop** 영상의 반복 재생 여부를 설정합니다. - **boolean PlayOnAwake** 월드 시작 시 영상 재생 여부를 설정합니다. - **float PlaySpeed [Sync]** 영상의 재생 속도를 설정합니다. 0.5부터 3 사이의 값을 사용할 수 있습니다. - **boolean Shuffl
[task] | code [pass] | ✅ 통과 [title] | JoystickComponent [question] | JoystickComponent의 DynamicStick 프로퍼티를 true로 설정하고, OnBeginPlay() 생명주기에서 클라이언트 환경 확인 후 실행되도록 작성해줘. [answer] | JoystickComponent의 `DynamicStick` 프로퍼티는 플레이 중 유저가 터치한 위치에 따라 조이스틱이 이동하도록 하는 기능입니다. 이 프로퍼티를 `true`로 설정하고, 스크립트가 실행될 때(OnBeginPlay) 클라이언트 환경인지 확인한 후 적용하는 코드는 다음과 같습니다. 조이스틱 컴포넌트가 붙어있는 엔티티의 `JoystickComponent`에 직접 접근하여 설정합니다. ```lua Method: [client only] void OnBeginPlay() { -- 현재 실행 환경이 클라이언트인지 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 질문 요구사항(DynamicStick 설정, OnBeginPlay, 클라이언트 확인)을 정확히 반영하고, 문서에 명시된 IsClient()와 컴포넌트 접근 방식을 올바르게 사용하여 오류 없이 작성함. [source_doc] | 모바일 환경에서 플레이어의 이동을 제어할 수 있는 가상의 조작키 기능을 지원해주는 Component입니다. # Properties - **AxisType Axis** 조작키가 움직일 수 있는 축 타입을 설정합니다. - **KeyboardKey DownArrow** 조작키가 아래로 이동했을 때 입력되는 키입니다. - **boolean DynamicStick** 플레이 시 조작키의 위치가 유저가 터치한 곳으로 이동합니다. - **KeyboardKey LeftArrow** 조작키가 왼쪽으로 이동했을 때 입력되는 키입니다
[task] | two_turn [pass] | ✅ 통과 [title] | YoutubePlayerCommonComponent [question] | YoutubePlayerCommonComponent의 주요 속성들과 상속받은 엔티티 정보 중 월드 시작 시 영상 자동 재생 및 반복 설정에 가장 관련이 깊은 항목은 무엇인가요? [answer] | YoutubePlayerCommonComponent에서 월드 시작 시 영상 자동 재생 및 반복 설정에 가장 관련이 깊은 항목은 다음과 같습니다. 1. **PlayOnAwake (boolean)**: 월드 시작 시 영상이 자동으로 재생될지 여부를 설정하는 속성입니다. 2. **Loop (boolean)**: 영상이 끝나면 처음부터 다시 반복 재생될지 여부를 설정하는 속성입니다. 3. **Entity (Entity)**: 이 컴포넌트를 소유한 엔티티를 참조하는 읽기 전용 속성으로, 컴포넌트가 부착된 월드 객체를 식별하는 데 사용 [followup] | PlayOnAwake와 Loop 속성을 모두 true로 설정하고 Urls 리스트에 여러 주소를 넣었을 때, Shuffle 속성이 false인 경우와 true인 경우의 재생 순서 차이를 구체적으로 설명해 주세요. [followup_answer] | `PlayOnAwake`와 `Loop` 속성이 모두 `true`이고 `Urls` 리스트에 여러 개의 영상 주소가 포함된 상태에서 `Shuffle` 속성에 따른 재생 순서 차이는 다음과 같습니다. * **Shuffle이 false인 경우:** `Urls` 리스트에 등록된 순서대로 영상들이 재생됩니다. 모든 영상이 순서대로 끝날 때까지 재생된 후, `Loop`가 true이므로 처음부터 다시 `Urls` 리스트의 첫 번째 영상으로 돌아가서 동일한 순서로 반복 재생됩니다. * **Shuffle이 true인 경우:** [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 질문에서 요구한 자동 재생(PlayOnAwake) 및 반복(Loop) 속성과 상속된 Entity 정보를 정확히 추출하여 설명했으므로 매우 정확하고 유용합니다. [source_doc] | Youtube 영상을 재생하는 기능을 제공합니다. YoutubePlayerWorldComponent와 YoutubePlayerGUIComponent의 부모 컴포넌트입니다. # Properties - **boolean Loop** 영상의 반복 재생 여부를 설정합니다. - **boolean PlayOnAwake** 월드 시작 시 영상 재생 여부를 설정합니다. - **float PlaySpeed [Sync]** 영상의 재생 속도를 설정합니다. 0.5부터 3 사이의 값을 사용할 수 있습니다. - **boolean Shuffl
[task] | two_turn [pass] | ❌ 탈락 [title] | InventoryComponent [question] | 인벤토리 아이템의 초기화나 변경 시점에 클라이언트에서 어떤 이벤트를 처리해야 하나요? [answer] | 인벤토리 아이템이 처음 생성되거나(초기화), 추가/제거 등으로 내용이 변경될 때 클라이언트에서 처리해야 하는 이벤트는 다음과 같습니다. 1. **`InventoryItemInitEvent`**: 게임에 입장하여 인벤토리 아이템 목록이 초기화될 때 발생합니다. 현재 보유 중인 아이템 목록을 확인하는 데 사용합니다. 2. **`InventoryItemModifiedEvent`**: 인벤토리 아이템의 상태가 변경되었을 때 발생합니다. 3. **`InventoryItemAddedEvent`**: 인벤토리에 아이템이 추가되었을 때 발 [followup] | 게임 입장 시 `InventoryItemInitEvent`를 통해 현재 아이템 목록을 로그로 출력하는 구체적인 코드 예제를 보여주세요. [followup_answer] | 게임 입장 시 인벤토리 아이템 목록을 로그로 출력하는 `InventoryItemInitEvent` 처리 코드는 다음과 같습니다. ```lua Event Handler: [self] HandleInventoryItemInitEvent (InventoryItemInitEvent event) { -- Parameters local Entity = event.Entity local Items = event.Items -------------------------------------------------------- if sel [scores] | helpfulness=2 correctness=1 coherence=3 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 없는 InventoryItemAddedEvent와 InventoryItemRemovedEvent를 지어내어 정답성이 낮습니다. [source_doc] | ```lua Event Handler: [self] HandleInventoryItemModifiedEvent (InventoryItemModifiedEvent event) { -- Parameters local Entity = event.Entity local Items = event.Items -------------------------------------------------------- if self:IsServer() then return end log ("[Give Item]") } ```
[task] | code [pass] | ✅ 통과 [title] | JoystickComponent [question] | JoystickComponent의 AxisType Axis 프로퍼티를 설정하고, TriggerEnterEvent 이벤트 핸들러에서 특정 엔티티가 트리거 영역에 진입했을 때 축을 변경하는 스크립트를 작성해줘. [answer] | JoystickComponent의 `Axis` 프로퍼티는 조작키가 움직일 수 있는 축 타입을 설정하는 용도로 사용됩니다. 제공된 문서에는 `AxisType`의 구체적인 상수 값(예: `AxisType.X`, `AxisType.Y` 등)이 명시되어 있지 않으므로, 실제 사용 가능한 `AxisType` 값은 확인할 수 없습니다. 따라서 문서에 근거하여 `AxisType`의 구체적인 값을 지정하는 코드를 작성할 수는 없으며, 존재하지 않는 API나 값을 지어낼 수 없습니다. 다만, `TriggerEnterEvent` 핸들러에서 특정 [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 AxisType 상수를 지어내지 않고 구조만 제시하며, TriggerEnterEvent와 컴포넌트 접근 방식을 문서와 일치시켜 적절하게 작성했습니다. [source_doc] | 모바일 환경에서 플레이어의 이동을 제어할 수 있는 가상의 조작키 기능을 지원해주는 Component입니다. # Properties - **AxisType Axis** 조작키가 움직일 수 있는 축 타입을 설정합니다. - **KeyboardKey DownArrow** 조작키가 아래로 이동했을 때 입력되는 키입니다. - **boolean DynamicStick** 플레이 시 조작키의 위치가 유저가 터치한 곳으로 이동합니다. - **KeyboardKey LeftArrow** 조작키가 왼쪽으로 이동했을 때 입력되는 키입니다
[task] | two_turn [pass] | ✅ 통과 [title] | InventoryComponent [question] | InventoryComponent에서 아이템 추가, 제거, 변경 시 발생하는 이벤트의 종류와 각각의 발생 시점은 무엇인가요? [answer] | `InventoryComponent`에서는 인벤토리의 상태 변화에 따라 다음 세 가지 이벤트가 발생합니다. 1. **InventoryItemAddedEvent** * **발생 시점:** `_ItemService:CreateItem` 함수를 호출하여 인벤토리에 아이템이 추가될 때 발생합니다. 2. **InventoryItemRemovedEvent** * **발생 시점:** `_ItemService:RemoveItem` 함수를 호출하여 인벤토리에서 아이템이 제거될 때 발생합니다. 3. **Inventor [followup] | HandleInventoryItemAddedEvent와 HandleInventoryItemRemovedEvent에서 event.Items 파라미터가 어떻게 사용되며, 서버/클라이언트 구분 로직(self:IsServer() 등)은 왜 필요한가요? [followup_answer] | ### `event.Items` 파라미터 사용법 `HandleInventoryItemAddedEvent`와 `HandleInventoryItemRemovedEvent`의 `event.Items` 파라미터는 해당 이벤트로 인해 인벤토리에 추가되거나 제거된 **아이템 목록**을 포함합니다. 참고 문서의 예제 코드에서는 `event.Items`를 직접 조작하기보다는, 이벤트 발생 자체를 감지하여 로그를 출력하는 용도로만 사용되었습니다. ```lua local Items = event.Items ``` 이 변수를 통해 변경된 아이템 객 [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서에 명시된 세 가지 이벤트의 종류와 발생 시점(ItemCount, Owner, 타입 프로퍼티 변경)을 정확하고 간결하게 설명했습니다. [source_doc] | 인벤토리에 아이템이 추가, 제거되거나 변경 사항이 생기면 `InventoryComponent`는 해당하는 이벤트를 발생시킵니다. `ItemService`의 예제 코드를 예시로 각 이벤트의 호출 시점을 살펴보면 다음과 같습니다. ```lua Event Handler: [self] HandleTriggerEnterEvent (TriggerEnterEvent event) { -- Parameters local TriggerBodyEntity = event.TriggerBodyEntity ------------------------
[task] | single_turn [pass] | ✅ 통과 [title] | TouchReceiveComponent [question] | 코드의 self.Index와 self.index 표기가 혼재되어 있는데, 실제로는 대소문자를 구분하지 않는 변수 하나를 의미하는 건지? [answer] | mLua는 Lua 5.3 기반이므로 변수 이름은 대소문자를 엄격하게 구분합니다. 따라서 `self.Index`와 `self.index`는 서로 다른 변수를 가리키는 것이며, 하나의 변수를 의미하는 것이 아닙니다. 제시된 참고 문서의 코드에는 두 가지 문제가 있습니다. 1. **Property 선언 불일치**: `Property` 블록에서는 대문자 `I`가 포함된 `table<integer> Index`로 선언되어 있습니다. 2. **Method 내 오타**: `AddHandler`와 `HandleTouchReleaseEven [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | mLua가 Lua 5.3 기반임을 정확히 인지하여 대소문자 구별을 설명하고, 문서 코드 내 오타(self.index, self.handler)를 정확히 지적하며 수정된 코드를 제시하여 질문에 완벽하게 답했습니다. [source_doc] | 플레이어가 엔티티를 터치하고 이동시키는 예제입니다. `TouchReceiveComponent`가 엔티티에 추가되어야 합니다. ```lua Property: [None] table<integer> Index [None] any Handler = nil Method: [client] void Move (any screenholdEvent) { local touchId = screenholdEvent.TouchId local touchPoint = screenholdEvent.TouchPoint local string f
[task] | code [pass] | ✅ 통과 [title] | CameraComponent [question] | CameraComponent의 Damping을 Vector2(0.5, 0.5), DeadZone을 Vector2(10, 10), SoftZone을 Vector2(20, 20)으로 설정하고, OnBeginPlay()에서 ChangeMaterial("cam_effect_01")을 호출하여 특정 머티리얼을 적용하는 스크립트를 작성해줘. [answer] | CameraComponent의 `Damping`, `DeadZone`, `SoftZone` 프로퍼티는 런타임에 코드에서 직접 대입하여 설정할 수 있습니다. 또한 `ChangeMaterial` 메서드를 사용하여 특정 머티리얼을 적용할 수 있습니다. 요청하신 값으로 설정하고 `OnBeginPlay` 시점에 머티리얼을 변경하는 스크립트는 다음과 같습니다. ```lua Property: [None] Vector2 DampingValue = Vector2(0.5, 0.5) [None] Vector2 DeadZoneValue = Vecto [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 요청한 프로퍼티 설정과 메서드 호출을 mLua 문법(컴포넌트 접근, 라이프사이클)에 맞게 정확하고 명확하게 작성했으며, 문서에 없는 API를 지어내지 않았습니다. [source_doc] | Entity를 바라보는 카메라 기능을 제공합니다. 카메라 간 화면 전환은 CameraService를 이용하세요. # Properties - **Vector2 CameraOffset** 카메라의 위치를 설정합니다. 월드 좌표 기준입니다. - **boolean ConfineCameraArea** 카메라가 비추는 범위를 맵의 발판 영역으로만 제한합니다. - **Vector2 Damping** 카메라가 대상을 추적하는 동안 대상이 SoftZone에 들어갈 때 카메라가 반응하는 속도를 조정합니다. 값이 작을수록 더욱 더 빠르게
[task] | code [pass] | ❌ 탈락 [title] | ChatBalloonComponent [question] | ChatBalloonComponent의 Message 프로퍼티에 "안녕하세요"를 설정하고, ShowDuration을 3초, HideDuration을 2초, AutoShowEnabled를 true로 하여 자동으로 반복 표시되도록 설정하는 스크립트를 작성해줘. [answer] | ChatBalloonComponent의 관련 프로퍼티를 설정하여 말풍선이 자동으로 반복 표시되도록 만드는 스크립트입니다. ```lua Method: [server only] void OnBeginPlay() { local chatBalloon = self.Entity.ChatBalloonComponent if chatBalloon == nil then chatBalloon = self.Entity:AddComponent("ChatBalloonComponent") end chatBalloon.Message = "안녕하세 [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=1 coherence=3 complexity=2 verbosity=2 [judge_reason] | AddComponent API는 문서에도 규칙에도 없는 지어낸 문법이며, ChatBalloonComponent 접근 시 nil 체크 후 추가하는 로직은 불필요하고 오류가 발생함 [source_doc] | 말풍선을 표시해주고 관련 기능을 설정할 수 있는 기능을 제공합니다. # Properties - **boolean AllowAutomaticTranslation [MakerOnly]** Message 프로퍼티 값의 자동 번역 여부를 설정합니다. - **boolean ArrowChatEnabled [Sync]** 말풍선 꼬리 이미지를 제공 여부를 설정합니다. - **boolean AutoShowEnabled [Sync]** 말풍선이 자동으로 나타나게 할지 여부를 설정합니다. 값이 true일 경우 ShowDuration 동
[task] | instruction_following [pass] | ✅ 통과 [title] | TextInputComponent [question] | CharacterLimit 프로퍼티의 타입과 설명을 1문장 이내로 요약하세요. [answer] | CharacterLimit은 입력 가능한 글자 수를 지정하는 int32 타입 프로퍼티입니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 CharacterLimit의 타입(int32)과 설명(입력 가능한 글자 수)을 정확하고 간결하게 요약했습니다. [source_doc] | 문자열을 입력받아 TextComponent에 전달합니다. # Properties - **boolean AllowAutomaticTranslation [MakerOnly]** PlaceHolder 프로퍼티 값의 자동 번역 여부를 설정합니다. - **boolean AutoClear** 텍스트 입력이 완료되었을 때, 입력 영역을 자동으로 초기화할지 여부를 설정합니다. - **int32 CharacterLimit** 입력 가능한 글자 수입니다. - **InputContentType ContentType** 입력 가능한 타
[task] | code [pass] | ✅ 통과 [title] | ChatBalloonComponent [question] | ChatBalloonComponent 의 ShowDuration 과 HideDuration 을 합산한 값을 주기로 _TimerService:SetTimerRepeat 을 등록하여 NPC가 말하는 동작이 중단되지 않도록 OnBeginPlay 에서 초기화하는 스크립트를 작성해줘 [answer] | 참고 문서에 포함된 예제를 기반으로, `ChatBalloonComponent`의 `ShowDuration`과 `HideDuration`을 합산한 값을 간격으로 설정하여 `_TimerService:SetTimerRepeat`을 등록하는 스크립트입니다. ```lua Method: [server only] void OnBeginPlay () { local chatBalloon = self.Entity.ChatBalloonComponent local npcTalks = {} table.insert(npcTalks, "NPC T [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 예제를 정확히 인용하여 질문에서 요구한 ShowDuration과 HideDuration 합산 주기 설정 및 SetTimerRepeat 등록 로직을 완벽하게 구현했습니다. [source_doc] | 다음은 일정 간격마다 대사를 말하는 NPC를 만드는 예제입니다. ChatBalloon이 출력되는 간격에 맞추어 대사를 교체해 줍니다. ```lua Method: [server only] void OnBeginPlay () { local chatBalloon = self.Entity.ChatBalloonComponent local npcTalks = {} table.insert(npcTalks, "NPC Talk 1") table.insert(npcTalks, "NPC Talk 2") table.insert(npcTa
[task] | single_turn [pass] | ✅ 통과 [title] | InventoryComponent [question] | HandleInventoryItemModifiedEvent에서 서버 쪽에서 코드가 실행되지 않도록 막고 싶은데, 어떤 조건문으로 처리하면 되나요? [answer] | `HandleInventoryItemModifiedEvent` 이벤트 핸들러 내부에서 `self:IsServer()`를 호출하여 서버 측에서 실행되는지 확인하고, 서버인 경우 바로 함수를 종료하는 조건문을 사용하면 됩니다. ```lua Event Handler: [self] HandleInventoryItemModifiedEvent (InventoryItemModifiedEvent event) { -- Parameters local Entity = event.Entity local Items = event.Items --- [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 참고 문서에 제시된 예제 코드와 정확히 일치하며, 질문의 의도를 명확하게 해결하는 적절한 답변입니다. [source_doc] | ```lua Event Handler: [self] HandleInventoryItemModifiedEvent (InventoryItemModifiedEvent event) { -- Parameters local Entity = event.Entity local Items = event.Items -------------------------------------------------------- if self:IsServer() then return end log ("[Give Item]") } ```
[task] | code [pass] | ✅ 통과 [title] | ChatBalloonComponent [question] | ChatBalloonComponent의 Message가 nil 또는 빈 문자열이 아닐 때만 Enable을 true로 하고, 아니면 false로 설정하여 말풍선 표시 여부를 제어하는 OnUpdate 메서드를 가진 스크립트를 작성해줘. [answer] | ChatBalloonComponent의 `Message` 프로퍼티 값이 `nil`이거나 빈 문자열(`""`)인 경우 `Enable`을 `false`로, 그 외의 경우 `true`로 설정하는 로직을 `OnUpdate` 메서드에 구현할 수 있습니다. ```lua Method: [server only] void OnUpdate(number delta) { local chatBalloon = self.Entity.ChatBalloonComponent if chatBalloon == nil then return [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서 정의에 맞춘 논리(OnUpdate, Message, Enable)를 정확하고 간결하게 구현하여 질문에 완벽히 부합합니다. [source_doc] | 말풍선을 표시해주고 관련 기능을 설정할 수 있는 기능을 제공합니다. # Properties - **boolean AllowAutomaticTranslation [MakerOnly]** Message 프로퍼티 값의 자동 번역 여부를 설정합니다. - **boolean ArrowChatEnabled [Sync]** 말풍선 꼬리 이미지를 제공 여부를 설정합니다. - **boolean AutoShowEnabled [Sync]** 말풍선이 자동으로 나타나게 할지 여부를 설정합니다. 값이 true일 경우 ShowDuration 동
[task] | code [pass] | ✅ 통과 [title] | ChatBalloonComponent [question] | npcTalks 라는 테이블에 4개의 대사를 넣고 _UtilLogic:RandomIntegerRange 로 인덱스를 추출해 ChatBalloonComponent.Message 를 갱신하는 로직을 OnBeginPlay 의 로컬 함수 setMessage 안에 구현하는 스크립트를 작성해줘 [answer] | `npcTalks` 테이블에 4개의 대사를 넣고, `_UtilLogic:RandomIntegerRange`를 통해 랜덤 인덱스를 추출하여 `ChatBalloonComponent.Message`를 갱신하는 로직을 `OnBeginPlay`의 로컬 함수 `setMessage` 안에 구현한 스크립트는 다음과 같습니다. ```lua Method: [server only] void OnBeginPlay () { local chatBalloon = self.Entity.ChatBalloonComponent local npcTalks [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 예제 코드를 정확히 재현하여 질문자의 요구사항을 완벽하게 충족했습니다. [source_doc] | 다음은 일정 간격마다 대사를 말하는 NPC를 만드는 예제입니다. ChatBalloon이 출력되는 간격에 맞추어 대사를 교체해 줍니다. ```lua Method: [server only] void OnBeginPlay () { local chatBalloon = self.Entity.ChatBalloonComponent local npcTalks = {} table.insert(npcTalks, "NPC Talk 1") table.insert(npcTalks, "NPC Talk 2") table.insert(npcTa
[task] | code [pass] | ❌ 탈락 [title] | ChatBalloonComponent [question] | ChatBalloonComponent의 FontSize를 20, FontColor를 Color(255, 0, 0, 255)로 설정하고, ChatModeEnabled를 true로 하여 플레이어 채팅이 말풍선으로 출력되도록 하는 스크립트를 작성해줘. [answer] | `ChatBalloonComponent`의 `FontSize`, `FontColor`, `ChatModeEnabled` 프로퍼티를 요청하신 값으로 설정하는 스크립트입니다. `ChatModeEnabled`가 `true`로 설정되면 플레이어의 채팅 내용이 말풍선으로 출력되며, 동시에 `AutoShowEnabled`가 `true`여도 자동 말풍선 기능은 동작하지 않습니다. ```lua Method: [server only] void OnBeginPlay() { local chatBalloon = self.Entity.ChatB [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=0 coherence=3 complexity=2 verbosity=2 [judge_reason] | mLua에서는 GetComponent이나 AddComponent 같은 다른 엔진 문법을 사용할 수 없으며 self.Entity.TransformComponent와 같이 직접 접근해야 하므로, 응답에 포함된 AddComponent 문법은 규칙 위반 및 존재하지 않는 API입니다. [source_doc] | 말풍선을 표시해주고 관련 기능을 설정할 수 있는 기능을 제공합니다. # Properties - **boolean AllowAutomaticTranslation [MakerOnly]** Message 프로퍼티 값의 자동 번역 여부를 설정합니다. - **boolean ArrowChatEnabled [Sync]** 말풍선 꼬리 이미지를 제공 여부를 설정합니다. - **boolean AutoShowEnabled [Sync]** 말풍선이 자동으로 나타나게 할지 여부를 설정합니다. 값이 true일 경우 ShowDuration 동
[task] | code [pass] | ✅ 통과 [title] | ChatBalloonComponent [question] | NPC가 일정 간격마다 지정된 대사 목록에서 무작위로 한 줄을 선택하여 ChatBalloonComponent.Message 에 설정하도록 OnBeginPlay 에서 _TimerService:SetTimerRepeat 을 사용하는 스크립트를 작성해줘 [answer] | 요청하신 기능은 `ChatBalloonComponent`의 `ShowDuration`과 `HideDuration`을 합한 값을 간격으로 삼아, `_TimerService:SetTimerRepeat`으로 타이머를 반복 실행하는 방식입니다. 타이머가 발동될 때마다 `_UtilLogic:RandomIntegerRange`를 이용해 대사 목록에서 무작위 인덱스를 선택하고, 해당 대사를 `Message`에 설정합니다. ```lua Method: [server only] void OnBeginPlay () { local chatBalloo [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 예제 코드를 정확히 재현하여 요청한 기능을 충실히 설명하고 구현했습니다. [source_doc] | 다음은 일정 간격마다 대사를 말하는 NPC를 만드는 예제입니다. ChatBalloon이 출력되는 간격에 맞추어 대사를 교체해 줍니다. ```lua Method: [server only] void OnBeginPlay () { local chatBalloon = self.Entity.ChatBalloonComponent local npcTalks = {} table.insert(npcTalks, "NPC Talk 1") table.insert(npcTalks, "NPC Talk 2") table.insert(npcTa
[task] | single_turn [pass] | ✅ 통과 [title] | InventoryComponent [question] | 게임에 처음 접속했을 때 인벤토리에 이미 있는 아이템 목록을 확인하려면 어떤 이벤트를 구독해야 하나요? [answer] | 게임에 처음 접속(입장)했을 때 인벤토리에 이미 있는 아이템 목록을 확인하려면 `InventoryItemInitEvent` 이벤트를 구독해야 합니다. 이 이벤트는 게임에 입장하는 시점에 발생하며, 이벤트 객체의 `Items` 프로퍼티를 통해 현재 보유 중인 아이템 목록을 조회할 수 있습니다. 아래는 해당 이벤트를 처리하는 mLua 스크립트 예시입니다. ```lua Event Handler: [self] HandleInventoryItemInitEvent (InventoryItemInitEvent event) { -- Param [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 정보와 코드가 정확히 일치하며, 질문에 대한 답변이 간결하고 명확합니다. [source_doc] | ```lua Event Handler: [self] HandleInventoryItemModifiedEvent (InventoryItemModifiedEvent event) { -- Parameters local Entity = event.Entity local Items = event.Items -------------------------------------------------------- if self:IsServer() then return end log ("[Give Item]") } ```
[task] | code [pass] | ❌ 탈락 [title] | ChatBalloonComponent [question] | ChatBalloonComponent의 BalloonScale을 1.5로, Offset을 10.0으로 설정하여 말풍선의 크기와 위치를 조정하는 초기화 스크립트를 작성해줘. [answer] | `OnBeginPlay()` 생명주기 메서드에서 `ChatBalloonComponent`의 `BalloonScale`과 `Offset` 프로퍼티를 직접 할당하는 방식으로 초기화 스크립트를 작성할 수 있습니다. 서버에서 실행되도록 `[server only]` 속성을 붙여주면, 엔티티가 플레이에 진입하는 시점에 말풍선의 크기가 1.5배로 확대되고 위아래 위치가 10.0만큼 조정됩니다. ```lua Method: [server only] void OnBeginPlay() { local chatBalloon = self.Entit [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=1 coherence=3 complexity=2 verbosity=2 [judge_reason] | mLua 규칙에 없는 AddComponent API를 지어냈고, ChatBalloonComponent가 이미 존재하는 전제에서 불필요한 nil 체크 로직을 포함하여 정확도가 낮음. [source_doc] | 말풍선을 표시해주고 관련 기능을 설정할 수 있는 기능을 제공합니다. # Properties - **boolean AllowAutomaticTranslation [MakerOnly]** Message 프로퍼티 값의 자동 번역 여부를 설정합니다. - **boolean ArrowChatEnabled [Sync]** 말풍선 꼬리 이미지를 제공 여부를 설정합니다. - **boolean AutoShowEnabled [Sync]** 말풍선이 자동으로 나타나게 할지 여부를 설정합니다. 값이 true일 경우 ShowDuration 동
[task] | code [pass] | ❌ 탈락 [title] | InventoryComponent [question] | InventoryItemAddedEvent 이벤트 핸들러에서 추가된 아이템을 확인하고 log()로 아이템 정보를 출력하는 스크립트를 작성해줘 [answer] | `InventoryItemAddedEvent` 이벤트는 인벤토리에 아이템이 추가될 때 발생하며, 이벤트 객체를 통해 관련 정보를 얻을 수 있습니다. 참고 문서의 예제에 따르면 이 이벤트 핸들러는 `event.Entity` (아이템이 추가된 엔티티)와 `event.Items` (추가된 아이템 목록)라는 프로퍼티를 가집니다. 추가된 아이템 정보를 확인하고 `log()`로 출력하는 mLua 스크립트는 다음과 같습니다. ```lua Event Handler: [self] HandleInventoryItemAddedEvent(Invent [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=0 coherence=3 complexity=2 verbosity=2 [judge_reason] | 참고 문서와 시스템 규칙 어디에도 InventoryItemAddedEvent의 event.Items, item.Name, item.ItemCount 프로퍼티가 존재한다고 명시되어 있지 않아 없는 API를 지어내어 정확도가 0점입니다. [source_doc] | 소유한 아이템들을 관리하는 컴포넌트입니다. # Properties - **boolean IsInitialized [ReadOnly] [HideFromInspector]** 인벤토리의 초기화가 완료 여부를 확인합니다. 초기화된 이후 InventoryComponent 관련 기능이 정상 작동하게 됩니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [Hi
[task] | instruction_following [pass] | ✅ 통과 [title] | TextInputComponent [question] | ActivateInputField 메서드의 동작 특성을 '호출 시점'과 '결과 반영 시점' 두 단계로 번호 목록으로 나열하세요. [answer] | `ActivateInputField` 메서드의 동작 특성은 다음과 같습니다. 1. **호출 시점**: 메서드를 호출하면 즉시 글자 입력이 활성화됩니다. 2. **결과 반영 시점**: 호출 후 몇 프레임이 지난 뒤에 `IsFocused` 프로퍼티 값이 `true`로 변경됩니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 'ActivateInputField() 호출 후 몇 프레임 뒤에 IsFocused 값이 true로 변경됩니다'라는 설명을 정확하고 간결하게 두 단계로 나누어 서술했습니다. [source_doc] | 문자열을 입력받아 TextComponent에 전달합니다. # Properties - **boolean AllowAutomaticTranslation [MakerOnly]** PlaceHolder 프로퍼티 값의 자동 번역 여부를 설정합니다. - **boolean AutoClear** 텍스트 입력이 완료되었을 때, 입력 영역을 자동으로 초기화할지 여부를 설정합니다. - **int32 CharacterLimit** 입력 가능한 글자 수입니다. - **InputContentType ContentType** 입력 가능한 타
[task] | single_turn [pass] | ✅ 통과 [title] | YoutubePlayerCommonComponent [question] | Shuffle을 true로 설정했을 때 Urls 리스트에 있는 영상들이 어떤 기준으로 무작위 순서가 정해지나요? [answer] | 제공된 문서에는 `Shuffle` 프로퍼티가 `true`일 경우 `Urls`에 지정된 영상들이 무작위 순서로 재생된다는 기능 설명만 존재하며, 무작위 순서가 결정되는 구체적인 알고리즘이나 기준(예: 특정 난수 생성기 사용 여부, 시드 값 등)에 대한 정보는 포함되어 있지 않습니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 없는 세부 알고리즘 정보를 지어내지 않고, 문서에 명시된 내용과 일치하는 한계를 정확히 지적하여 질문에 충실히 답변했습니다. [source_doc] | Youtube 영상을 재생하는 기능을 제공합니다. YoutubePlayerWorldComponent와 YoutubePlayerGUIComponent의 부모 컴포넌트입니다. # Properties - **boolean Loop** 영상의 반복 재생 여부를 설정합니다. - **boolean PlayOnAwake** 월드 시작 시 영상 재생 여부를 설정합니다. - **float PlaySpeed [Sync]** 영상의 재생 속도를 설정합니다. 0.5부터 3 사이의 값을 사용할 수 있습니다. - **boolean Shuffl
[task] | single_turn [pass] | ✅ 통과 [title] | YoutubePlayerCommonComponent [question] | YoutubePlayerCommonComponent의 PlaySpeed 프로퍼티에 3.5를 설정했는데 왜 반영이 되지 않는지 알고 싶어요. [answer] | `PlaySpeed` 프로퍼티는 **0.5부터 3 사이의 값**만 허용하도록 제한되어 있습니다. 따라서 3.5와 같이 3을 초과하는 값을 설정하면 유효한 범위 밖이므로 반영되지 않습니다. 3.0 이하(예: 1.0, 2.5, 3.0)의 값을 지정해야 정상적으로 재생 속도가 적용됩니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 문서에 명시된 PlaySpeed의 유효 범위(0.5~3)를 정확히 인용하여 질문의 원인(3.5 설정)을 설명했으므로 정확하고 도움이 됩니다. [source_doc] | Youtube 영상을 재생하는 기능을 제공합니다. YoutubePlayerWorldComponent와 YoutubePlayerGUIComponent의 부모 컴포넌트입니다. # Properties - **boolean Loop** 영상의 반복 재생 여부를 설정합니다. - **boolean PlayOnAwake** 월드 시작 시 영상 재생 여부를 설정합니다. - **float PlaySpeed [Sync]** 영상의 재생 속도를 설정합니다. 0.5부터 3 사이의 값을 사용할 수 있습니다. - **boolean Shuffl
[task] | instruction_following [pass] | ✅ 통과 [title] | TextInputComponent [question] | TextInputSubmitEvent 와 TextInputEndEditEvent 의 발생 시점을 2문장 이내로 구분해서 설명하세요. [answer] | TextInputSubmitEvent는 입력을 마치고 Enter 키를 눌렀을 때 발생하며, TextInputEndEditEvent는 InputField의 값 변경이 완료되었을 때 발생합니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 이벤트 정의와 정확히 일치하며, 요구사항인 2문장 이내로 명확하게 구분하여 설명했습니다. [source_doc] | - **OrderInLayerChangedEvent** Component의 OrderInLayer가 변경되었을 때 발생하는 이벤트입니다. - **SortingLayerChangedEvent** 컴포넌트의 SortingLayer가 변경되었을 때 발생하는 이벤트입니다. - **TextInputEndEditEditorEvent** InputField의 값 변경이 완료되었을 때 발생하는 에디터 이벤트입니다. - **TextInputEndEditEvent** InputField의 값 변경이 완료되었을 때 발생하는 이벤트입니다.
[task] | instruction_following [pass] | ✅ 통과 [title] | TextInputComponent [question] | IsLocalizationKey 프로퍼티의 true/false 상태별 GetLocalizedPlaceHolder 메서드의 반환 값을 표로 정리하세요. [answer] | `IsLocalizationKey` 프로퍼티의 값에 따라 `GetLocalizedPlaceHolder()` 메서드가 반환하는 값은 다음과 같습니다. | IsLocalizationKey 값 | GetLocalizedPlaceHolder() 반환 값 | | :--- | :--- | | **true** | `LocaleDataSet`에서 현재 언어 설정에 맞는 텍스트를 찾아 반환합니다. 이때 `PlaceHolder` 프로퍼티의 값을 Key로 사용합니다. | | **false** | `PlaceHolder` 프로퍼티의 값을 그대로 반환합 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 GetLocalizedPlaceHolder 메서드 설명과 IsLocalizationKey 프로퍼티 의미를 정확히 표로 정리하여 질문에 완벽하게 답하고 있습니다. [source_doc] | 문자열을 입력받아 TextComponent에 전달합니다. # Properties - **boolean AllowAutomaticTranslation [MakerOnly]** PlaceHolder 프로퍼티 값의 자동 번역 여부를 설정합니다. - **boolean AutoClear** 텍스트 입력이 완료되었을 때, 입력 영역을 자동으로 초기화할지 여부를 설정합니다. - **int32 CharacterLimit** 입력 가능한 글자 수입니다. - **InputContentType ContentType** 입력 가능한 타