← 목록

mLua · Nemotron SDG 질문-응답 (SFT)

총 21,567개 · 페이지 139/719
🔀 랜덤
불러오는 중…

[task] | code [pass] | ✅ 통과 [title] | DamageSkinSpawnerComponent [question] | OnBeginPlay에서 DamageSkinSpawnerComponent, TransformComponent, HitComponent가 존재하지 않을 경우 안전하게 종료하는 로직을 포함하여 DamageSkinOffset을 초기화하는 스크립트를 작성해줘 [answer] | 요청하신 로직은 `OnBeginPlay` 시점에 `DamageSkinSpawnerComponent`, `TransformComponent`, `HitComponent`가 존재하는지 확인하고, 하나라도 없으면 함수를 종료하며, 모두 존재할 경우 `HitComponent`의 정보와 `TransformComponent`의 스케일을 이용해 대미지 스킨의 오프셋을 계산하여 설정하는 방식입니다. ```lua Method: [server only] void OnBeginPlay() { local damageSkinSpawnerComponen [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 예제 코드를 정확히 재현하여 요청한 nil 체크 로직과 DamageSkinOffset 초기화를 완벽하게 수행했습니다. [source_doc] | Entity에 피격 이벤트가 발생했을 때 대미지 스킨을 출력합니다. # Properties - **Vector2 DamageSkinOffset [Sync]** 대미지 스킨이 출력되는 위치를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromInspector]** 계층 구조상에서 이 컴포넌트가 Enable 상태인지를 반환합니

[task] | two_turn [pass] | ✅ 통과 [title] | MapComponent [question] | MapComponent의 물리 보정 프로퍼티 중 WalkDrag와 AirDecelerationXFactor가 RigidbodyComponent의 움직임에 미치는 구체적인 차이는 무엇인가요? [answer] | MapComponent의 `WalkDrag`와 `AirDecelerationXFactor`는 모두 RigidbodyComponent를 가진 엔티티의 움직임에 영향을 미치지만, 적용되는 상황(지상/공중)과 조절하는 물리량이 다릅니다. **1. WalkDrag (지상 마찰력 보정)** * **적용 상황:** 엔티티가 지상(타일)에 있을 때 * **조절 내용:** 타일 마찰력을 보정합니다. * **구체적 차이:** 값이 **작을수록** 타일에서 잘 미끄러집니다. 즉, 이 값은 지면에서 엔티티가 멈추는 속도나 미끄러지는 정도를 [followup] | WalkDrag 값이 0에 가까울 때 타일 미끄러짐 현상이 발생하고, AirDecelerationXFactor가 0일 때 공중에서 입력을 멈추면 X축 속도가 즉시 0으로 되나요? 해당 상황을 시뮬레이션하는 mLua 코드 예시를 작성해 주세요. [followup_answer] | **1. WalkDrag가 0에 가까울 때:** 네, `WalkDrag`는 타일 마찰력을 보정하는 값으로, 문서에 "값이 작을수록 타일에서 잘 미끄러집니다"라고 명시되어 있습니다. 따라서 0에 가까울수록 마찰력이 거의 없어져 엔티티는 타일 위에서 쉽게 미끄러지는 현상이 발생합니다. **2. AirDecelerationXFactor가 0일 때:** 아니요, X축 속도가 즉시 0이 되지는 않습니다. `AirDecelerationXFactor`는 "입력이 없으면 X축 이동 속도가 **얼마나 빠르게** 멈추는지를 보정"하는 값입니다. 이 [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서에 명시된 WalkDrag(타일 마찰력, 작을수록 미끄러짐)와 AirDecelerationXFactor(공중 X축 감속)의 정의와 적용 상황을 정확하고 명확하게 비교하여 답변했습니다. [source_doc] | 맵을 관리하고, 맵의 고유 속성들을 변경할 수 있습니다. # Properties - **float AirAccelerationXFactor** 맵 내에 RigidbodyComponent를 가진 엔티티의 공중에서의 속도를 보정합니다. 값이 증가할수록 공중에서의 속도가 빨라집니다. - **float AirDecelerationXFactor** 맵 내에 RigidbodyComponent를 가진 엔티티가 공중에 있을 때, 입력이 없으면 X축 이동 속도가 얼마나 빠르게 멈추는지를 보정합니다. - **float FallSpeedMa

[task] | code [pass] | ✅ 통과 [title] | DamageSkinSpawnerComponent [question] | TransformComponent의 Scale을 적용하여 HitComponent의 BoxSize를 계산한 후 DamageSkinSpawnerComponent의 DamageSkinOffset을 조정하는 스크립트를 작성해줘 [answer] | 참고 문서에 제시된 예제와 API를 바탕으로, `TransformComponent`의 `Scale`을 적용하여 `HitComponent`의 `ColliderOffset`과 `BoxSize`를 계산하고, 이를 이용해 `DamageSkinSpawnerComponent`의 `DamageSkinOffset`을 상단 중앙으로 조정하는 스크립트는 다음과 같습니다. ```lua Method: [server only] void OnBeginPlay() { local damageSkinSpawnerComponent = self.Entity.Da [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 예제 코드를 정확히 재현하고 설명하여 질문에 완벽하게 부합합니다. [source_doc] | Entity에 피격 이벤트가 발생했을 때 대미지 스킨을 출력합니다. # Properties - **Vector2 DamageSkinOffset [Sync]** 대미지 스킨이 출력되는 위치를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromInspector]** 계층 구조상에서 이 컴포넌트가 Enable 상태인지를 반환합니

[task] | two_turn [pass] | ✅ 통과 [title] | MapComponent [question] | 인스턴스 맵(IsInstanceMap)과 동적 맵(IsDynamicMap)의 구별이 MapComponent의 생명주기나 프로퍼티 동기화(Sync)에 어떤 영향을 주나요? [answer] | 제시된 MapComponent 문서 정보만을 근거로 답변드립니다. 문서에는 `IsInstanceMap`과 `IsDynamicMap` 프로퍼티의 정의와 용도만 명시되어 있으며, 두 프로퍼티가 MapComponent의 **생명주기(OnBeginPlay, OnUpdate 등)** 에 직접적인 영향을 주거나 **프로퍼티 동기화(Sync) 메커니즘 자체를 변경**한다는 기술적 설명은 포함되어 있지 않습니다. 다만 문서에 명시된 내용만으로는 다음과 같이 확인됩니다: 1. **IsInstanceMap** * `boolean` [followup] | IsInstanceMap이 true인 맵에서 Enable 프로퍼티를 서버와 클라이언트 간에 동기화할 때, EnableInHierarchy와 Entity의 Enable 상태가 false인 경우의 동작을 확인하는 mLua 코드 예시를 요청합니다. [followup_answer] | 요청하신 동작을 확인하기 위한 mLua 코드 예시입니다. `Enable`은 `[Sync]` 프로퍼티이므로 서버에서 변경 시 클라이언트로 동기화됩니다. `EnableInHierarchy`는 `[ReadOnly]`이며, 이 컴포넌트의 `Enable` 상태와 소유 엔티티(`Entity`)의 활성화 상태를 모두 참(true)일 때만 true를 반환합니다. `Entity`는 `[ReadOnly]` 프로퍼티로, MapComponent를 소유한 엔티티를 참조합니다. 아래 코드는 서버에서 MapComponent의 `Enable` 상태를 변경하 [scores] | helpfulness=3 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 없는 정보를 지어내지 않고 문서에 명시되지 않았음을 정확히 지적하여 질문의 한계를 잘 설명했으나, 질문자가 원하는 '영향'에 대한 직접적인 답을 주지는 못함 [source_doc] | 맵을 관리하고, 맵의 고유 속성들을 변경할 수 있습니다. # Properties - **float AirAccelerationXFactor** 맵 내에 RigidbodyComponent를 가진 엔티티의 공중에서의 속도를 보정합니다. 값이 증가할수록 공중에서의 속도가 빨라집니다. - **float AirDecelerationXFactor** 맵 내에 RigidbodyComponent를 가진 엔티티가 공중에 있을 때, 입력이 없으면 X축 이동 속도가 얼마나 빠르게 멈추는지를 보정합니다. - **float FallSpeedMa

[task] | single_turn [pass] | ✅ 통과 [title] | StateComponent [question] | OnUpdate에서 CurrentStateName을 Message에 대입할 때, 상태가 빈 문자열인 경우 채팅풍선이 사라지지 않는 현상이 발생하는 원인은 무엇인가요? [answer] | 제공된 문서에는 `OnUpdate`에서 `CurrentStateName`이 빈 문자열일 때 채팅풍선이 사라지지 않는 현상에 대한 원인이 명시되어 있지 않습니다. 문서에는 `StateComponent`의 `CurrentStateName` 값을 `ChatBalloonComponent`의 `Message`에 대입하는 코드 구조와, `AutoShowEnabled`, `ShowDuration`, `HideDuration` 등의 프로퍼티 설정 예시만 포함되어 있으며, 특정 상태값(빈 문자열 포함)에 따른 채팅풍선의 동작 로직이나 버그 분석 [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 정보를 지어내지 않고, 문서에 해당 정보가 없음을 정확히 지적하여 신뢰성을 확보했으나, 질문자의 문제 해결을 위한 직접적인 해결책은 제공하지 못했습니다. [source_doc] | 엔티티의 현재 State를 ChatBalloon을 통해 표시해주는 컴포넌트입니다. ```lua Method: [server only] void OnBeginPlay () { local state = self.Entity.StateComponent if state == nil then state = self.Entity:AddComponent("StateComponent") end local chatBalloon = self.Entity.ChatBalloonComponent if chatBalloon == nil

[task] | code [pass] | ✅ 통과 [title] | InventoryComponent [question] | HandleInventoryItemInitEvent 이벤트 핸들러에서 Items 배열을 순회하며 ItemDataTableName이 "Wood"인 아이템의 수를 계산하여 local 변수에 저장하고, HandleInventoryItemModifiedEvent 이벤트 핸들러에서 동일한 로직으로 재계산하여 기존 값과 비교해 증가한 경우에만 log로 "Wood collected"를 출력하도록 하는 스크립트를 작성해줘 [answer] | 요청하신 로직을 구현하기 위해 `Wood` 아이템 개수를 저장할 프로퍼티를 추가하고, 두 이벤트 핸들러에서 해당 개수를 계산 및 비교하는 스크립트를 작성했습니다. ```lua Property: [None] number WoodCount = 0 Method: [client only] number CountWoodItems(Items) { local count = 0 for i = 1, #Items do if Items[i].ItemDataTableName == "Wood" then [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 명시된 API와 표준 규칙을 정확히 준수하며 요청된 로직을 명확하고 간결하게 구현했습니다. [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] | two_turn [pass] | ✅ 통과 [title] | NameTagComponent [question] | 유저 입장 시 `HandleUserEnterEvent`를 통해 `NameTag`를 동적으로 변경하는 예제 코드를 보여주세요. [answer] | 유저가 입장할 때 `UserService`의 `HandleUserEnterEvent`를 통해 해당 유저의 `NameTagComponent`에 접근하여 이름(`Name`)과 글자 색(`FontColor`)을 동적으로 변경하는 예제입니다. ```lua Event Handler: [server only] [service: UserService] HandleUserEnterEvent (UserEnterEvent event) { -- Parameters local UserId = event.UserId ----------------- [followup] | 만약 특정 유저의 `NameTag` 위치를 `OffsetY`로 10만큼 상단으로 이동시키고 싶다면 해당 이벤트 핸들러 내에서 어떻게 수정해야 하나요? [followup_answer] | `NameTagComponent`의 `OffsetY` 프로퍼티는 이름표의 위치 Offset을 설정하는 데 사용됩니다. `HandleUserEnterEvent` 내에서 해당 유저의 `NameTagComponent`에 접근하여 `OffsetY` 값을 10으로 설정하면 됩니다. 다음은 이전 예제에 `OffsetY` 설정을 추가한 코드입니다. ```lua Event Handler: [server only] [service: UserService] HandleUserEnterEvent (UserEnterEvent event) { -- [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 예제 코드를 정확히 재현하여 질문에 대한 명확하고 유용한 답변을 제공했습니다. [source_doc] | 엔티티 이름표를 표시하고 관련 정보들을 설정합니다. # Properties - **boolean Bold [Sync]** 굵은 텍스트 사용 여부를 설정합니다. - **Color FontColor [Sync]** 글자색을 변경합니다. - **Vector2 FontOffset [Sync]** 이름표 내 글자 위치를 상하좌우로 조정합니다. - **float FontSize [Sync]** 글자 크기를 설정합니다. - **string Name [Sync]** 이름표에 표시할 이름을 설정합니다. - **DataRef N

[task] | single_turn [pass] | ✅ 통과 [title] | StateComponent [question] | StateComponent의 CurrentStateName 값은 서버에서만 접근할 수 있나요, 아니면 클라이언트에서도 직접 읽을 수 있나요? [answer] | 제시된 참고 문서에는 `StateComponent`의 `CurrentStateName` 프로퍼티가 서버 전용으로만 접근 가능한지, 클라이언트에서도 직접 읽을 수 있는지에 대한 명시적인 설명이 없습니다. 문서에는 `StateComponent`가 엔티티의 현재 상태를 `ChatBalloon`을 통해 표시해주는 컴포넌트이며, 예제 코드에서 `OnUpdate` 메서드가 `[server only]` 실행 공간으로 선언되어 `self.Entity.StateComponent.CurrentStateName` 값을 읽어서 `ChatBalloonC [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 명시된 정보만 사용하여 질문에 대한 정확한 한계를 설명했으며, 존재하지 않는 API를 지어내지 않았습니다. [source_doc] | 엔티티의 현재 State를 ChatBalloon을 통해 표시해주는 컴포넌트입니다. ```lua Method: [server only] void OnBeginPlay () { local state = self.Entity.StateComponent if state == nil then state = self.Entity:AddComponent("StateComponent") end local chatBalloon = self.Entity.ChatBalloonComponent if chatBalloon == nil

[task] | single_turn [pass] | ✅ 통과 [title] | StateComponent [question] | StateComponent를 사용하려면 반드시 ChatBalloonComponent도 함께 초기화해야 하는 이유가 무엇인가요? [answer] | StateComponent는 엔티티의 현재 상태(State) 자체를 관리하는 컴포넌트이지만, 이 상태를 시각적으로 사용자에게 표시하기 위해서는 별도의 출력 수단인 ChatBalloonComponent가 필요합니다. StateComponent에는 상태를 화면에 직접 출력하는 기능이 없기 때문에, `OnUpdate` 메서드에서 StateComponent의 `CurrentStateName` 값을 가져와서 ChatBalloonComponent의 `Message` 속성에 대입하는 방식으로 연동됩니다. 따라서 StateComponent의 상 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 예제 코드와 설명을 정확히 인용하여 StateComponent와 ChatBalloonComponent의 연동 필요성을 명확하게 설명했습니다. [source_doc] | 엔티티의 현재 State를 ChatBalloon을 통해 표시해주는 컴포넌트입니다. ```lua Method: [server only] void OnBeginPlay () { local state = self.Entity.StateComponent if state == nil then state = self.Entity:AddComponent("StateComponent") end local chatBalloon = self.Entity.ChatBalloonComponent if chatBalloon == nil

[task] | single_turn [pass] | ✅ 통과 [title] | InventoryComponent [question] | `_ItemService:CreateItem`으로 아이템을 생성한 직후 `newItem.ItemCount = 3`을 설정했는데, 이때 `InventoryItemAddedEvent`와 `InventoryItemModifiedEvent`가 모두 발생하며 클라이언트 쪽에서 순서대로 처리해야 할 경우 어떤 주의사항이 필요한가요? [answer] | `_ItemService:CreateItem` 호출 시점이 `InventoryItemAddedEvent` 발생 시점이며, 직후 `ItemCount` 값을 변경하면 `InventoryItemModifiedEvent`가 발생한다는 점을 이해해야 합니다. 클라이언트에서 이 두 이벤트를 순서대로 처리할 때 주의해야 할 핵심 사항은 다음과 같습니다. 1. **이벤트 발생 순서 보장**: 서버에서 `CreateItem`이 먼저 실행되고 그 다음 `ItemCount` 변경이 실행되므로, 클라이언트에도 `InventoryItemAddedEv [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=3 coherence=4 complexity=4 verbosity=2 [judge_reason] | 문서에 명시되지 않은 '이벤트 순서 보장' 및 '초기값 미반영 가능성'을 단정하여 서술했으나, 문서의 API 사용법은 정확하고 구조가 명확함 [source_doc] | 인벤토리에 아이템이 추가, 제거되거나 변경 사항이 생기면 `InventoryComponent`는 해당하는 이벤트를 발생시킵니다. `ItemService`의 예제 코드를 예시로 각 이벤트의 호출 시점을 살펴보면 다음과 같습니다. ```lua Event Handler: [self] HandleTriggerEnterEvent (TriggerEnterEvent event) { -- Parameters local TriggerBodyEntity = event.TriggerBodyEntity ------------------------

[task] | code [pass] | ✅ 통과 [title] | TextInputComponent [question] | `TextInputComponent`의 `PlaceHolder`를 "닉네임 입력"으로 설정하고, `HandleTextInputEndEditEvent`에서 `event.text` 값을 `string` 타입의 Property `UserName`에 저장한 뒤 로그로 출력하는 클라이언트 스크립트를 작성해줘. [answer] | `TextInputComponent`의 `PlaceHolder`를 설정하고, 입력이 완료되면 해당 값을 `UserName` 프로퍼티에 저장하여 로그로 출력하는 스크립트는 다음과 같습니다. ```lua Property: [None] string UserName = "" [None] TextInputComponent NameInput = EntityPath Method: [client only] void OnBeginPlay() { self.NameInput.PlaceHolder = "닉네임 입력" } Event Handler: [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 질문 요구사항을 정확히 충족하며, 참고 문서의 예제 구조와 API 사용법이 일치하여 오류가 없습니다. [source_doc] | - **OrderInLayerChangedEvent** Component의 OrderInLayer가 변경되었을 때 발생하는 이벤트입니다. - **SortingLayerChangedEvent** 컴포넌트의 SortingLayer가 변경되었을 때 발생하는 이벤트입니다. - **TextInputEndEditEditorEvent** InputField의 값 변경이 완료되었을 때 발생하는 에디터 이벤트입니다. - **TextInputEndEditEvent** InputField의 값 변경이 완료되었을 때 발생하는 이벤트입니다.

[task] | single_turn [pass] | ✅ 통과 [title] | StateComponent [question] | StateAnimationComponent와 StateComponent를 함께 사용해야 하는 경우, 두 컴포넌트 간 상태 동기화 순서는 어떻게 관리해야 하나요? [answer] | 제공된 참고 문서에는 `StateAnimationComponent`에 대한 구체적인 API, 프로퍼티, 메서드, 또는 `StateComponent`와의 동기화 순서에 대한 정보가 포함되어 있지 않습니다. 참고 문서에서 확인 가능한 내용은 다음과 같습니다: 1. **StateComponent**: `self.Entity.StateComponent`를 통해 접근하며, `CurrentStateName` 프로퍼티를 가집니다. 2. **동기화 예제**: `OnUpdate` 메서드 내에서 매 프레임마다 `StateComponent`의 ` [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 없는 StateAnimationComponent 상세 정보나 동기화 순서를 지어내지 않고, 문서에 존재하는 정보 범위 내에서 정직하게 답변했으므로 모든 항목에서 만점을 받습니다. [source_doc] | 엔티티의 현재 State를 ChatBalloon을 통해 표시해주는 컴포넌트입니다. ```lua Method: [server only] void OnBeginPlay () { local state = self.Entity.StateComponent if state == nil then state = self.Entity:AddComponent("StateComponent") end local chatBalloon = self.Entity.ChatBalloonComponent if chatBalloon == nil

[task] | code [pass] | ✅ 통과 [title] | TextInputComponent [question] | `TextInputComponent`의 `ContentType`을 `InputContentType.Password`로 설정하여 비밀번호 입력 필드를 만들고, `HandleTextInputValueChangeEvent`가 발생할 때마다 현재 입력된 문자열 길이를 로그에 출력하는 스크립트를 작성해줘. [answer] | `TextInputComponent`의 `ContentType` 프로퍼티를 `InputContentType.Password`로 설정하면 입력된 문자가 가려진 비밀번호 필드로 동작합니다. 입력값이 바뀔 때마다 발생하는 `TextInputValueChangeEvent` 핸들러에서 이벤트 객체의 `text` 필드를 읽어 길이를 계산하고 로그에 출력할 수 있습니다. ```lua Property: [None] TextInputComponent PasswordInput = EntityPath Method: [client only] void [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 API와 예제를 정확히 따라 요청된 기능을 구현했으며, mLua 문법 규칙에 부합합니다. [source_doc] | - **OrderInLayerChangedEvent** Component의 OrderInLayer가 변경되었을 때 발생하는 이벤트입니다. - **SortingLayerChangedEvent** 컴포넌트의 SortingLayer가 변경되었을 때 발생하는 이벤트입니다. - **TextInputEndEditEditorEvent** InputField의 값 변경이 완료되었을 때 발생하는 에디터 이벤트입니다. - **TextInputEndEditEvent** InputField의 값 변경이 완료되었을 때 발생하는 이벤트입니다.

[task] | code [pass] | ✅ 통과 [title] | TextInputComponent [question] | `TextInputComponent`의 `HandleTextInputSubmitEvent` 핸들러를 구현하여 Enter 키 입력 시 `event.text`가 "quit"와 같으면 로그에 "게임 종료"를 출력하고, 그 외에는 "잘못된 명령"을 출력하는 스크립트를 작성해줘. [answer] | `TextInputComponent`의 `TextInputSubmitEvent`는 사용자가 입력을 마치고 Enter 키를 눌렀을 때 발생합니다. 아래 스크립트는 `HandleTextInputSubmitEvent` 핸들러를 구현하여 `event.text`가 "quit"인지 확인하고, 해당 값에 따라 각각 "게임 종료" 또는 "잘못된 명령"을 로그로 출력합니다. ```lua Property: [None] TextInputComponent InputField = EntityPath Event Handler: [entity: Entit [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 이벤트 정의와 예제 구문을 정확히 따라 요청된 로직을 구현했으며, 불필요한 설명 없이 명확합니다. [source_doc] | - **OrderInLayerChangedEvent** Component의 OrderInLayer가 변경되었을 때 발생하는 이벤트입니다. - **SortingLayerChangedEvent** 컴포넌트의 SortingLayer가 변경되었을 때 발생하는 이벤트입니다. - **TextInputEndEditEditorEvent** InputField의 값 변경이 완료되었을 때 발생하는 에디터 이벤트입니다. - **TextInputEndEditEvent** InputField의 값 변경이 완료되었을 때 발생하는 이벤트입니다.

[task] | code [pass] | ✅ 통과 [title] | InventoryComponent [question] | HandleInventoryItemInitEvent 이벤트 핸들러에서 Items 배열의 모든 아이템의 ItemDataTableName 값을 table에 담아 self:MyProperty()를 통해 저장하고, HandleInventoryItemModifiedEvent 이벤트 핸들러에서 self:MyProperty()의 table을 event.Items의 ItemDataTableName 목록으로 갱신하여 log로 변경된 아이템 이름 목록을 출력하도록 하는 스크립트를 작성해줘 [answer] | 사용자가 요청한 동작(인벤토리 초기화 시 아이템 이름 목록을 저장하고, 변경 시 갱신하여 출력)은 제공된 문서에 있는 `InventoryItemInitEvent`와 `InventoryItemModifiedEvent`의 파라미터(`event.Items`, `Items[i].ItemDataTableName`)와 mLua 기본 문법(속성 선언, `self:Method()` 호출, `log`)을 조합하여 구현할 수 있습니다. 아래 스크립트는 요청한 기능을 수행합니다. ```lua Property: [None] table ItemName [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 제시된 문서의 이벤트 핸들러와 파라미터 구조를 정확히 따르며, mLua 스크립트 규칙에 맞는 프로퍼티 선언 및 메서드 호출 방식을 사용하여 요청된 기능을 명확하고 오류 없이 구현했습니다. [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] | single_turn [pass] | ✅ 통과 [title] | NameTagComponent [question] | NameTagComponent의 Name 속성을 변경할 때 클라이언트와 서버 중 어디서 실행해야 화면에 반영되나요? [answer] | `NameTagComponent`의 `Name` 속성은 `[Sync]` 속성이므로, 서버에서 변경하면 클라이언트 화면에 자동으로 반영됩니다. 따라서 화면에 반영되려면 **서버**에서 실행해야 합니다. 아래 예제는 유저가 입장할 때 서버에서 이름표를 변경하는 코드입니다. ```lua Event Handler: [server only] [service: UserService] HandleUserEnterEvent(UserEnterEvent event) { local UserId = event.UserId local u [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | [Sync] 프로퍼티의 동기화 원리를 정확히 설명하고 문서의 예제와 일치하는 코드를 제시하여 질문에 완벽하게 답했습니다. [source_doc] | 엔티티 이름표를 표시하고 관련 정보들을 설정합니다. # Properties - **boolean Bold [Sync]** 굵은 텍스트 사용 여부를 설정합니다. - **Color FontColor [Sync]** 글자색을 변경합니다. - **Vector2 FontOffset [Sync]** 이름표 내 글자 위치를 상하좌우로 조정합니다. - **float FontSize [Sync]** 글자 크기를 설정합니다. - **string Name [Sync]** 이름표에 표시할 이름을 설정합니다. - **DataRef N

[task] | single_turn [pass] | ✅ 통과 [title] | NameTagComponent [question] | 유저 입장 시 이름표를 설정하는 스크립트에서 _UserService:GetUserEntityByUserId 메서드를 호출했는데 엔티티가 null로 반환되는 원인은 무엇일까요? [answer] | 제시된 참고 문서에는 `_UserService:GetUserEntityByUserId` 메서드가 `null` 또는 `nil` 값을 반환하는 구체적인 원인이나 오류 처리 로직에 대한 설명이 포함되어 있지 않습니다. 문서에는 해당 메서드를 사용하여 유저 엔티티를 가져온 후 `NameTagComponent`에 접근하여 `Name`과 `FontColor`를 설정하는 예제 코드만 제시되어 있으며, 엔티티가 정상적으로 반환되지 않을 경우를 다루는 내용은 없습니다. 따라서 제공된 문서 범위 내에서는 엔티티가 null로 반환되는 원인을 정확히 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 해당 메서드의 null 반환 원인이나 오류 처리 내용이 없음을 정확히 지적하고, 지어낸 정보를 제공하지 않아 질문에 충실하고 정확합니다. [source_doc] | 엔티티 이름표를 표시하고 관련 정보들을 설정합니다. # Properties - **boolean Bold [Sync]** 굵은 텍스트 사용 여부를 설정합니다. - **Color FontColor [Sync]** 글자색을 변경합니다. - **Vector2 FontOffset [Sync]** 이름표 내 글자 위치를 상하좌우로 조정합니다. - **float FontSize [Sync]** 글자 크기를 설정합니다. - **string Name [Sync]** 이름표에 표시할 이름을 설정합니다. - **DataRef N

[task] | single_turn [pass] | ✅ 통과 [title] | YoutubePlayerGUIComponent [question] | Shuffle이 true로 설정되어 있을 때 Urls 리스트에 추가된 영상들의 재생 순서는 어떻게 결정되나요? [answer] | Shuffle 프로퍼티가 true로 설정되면, Urls 리스트에 지정된 영상들이 무작위 순서로 재생됩니다. 즉, 리스트에 추가된 순서가 아닌 랜덤한 순서로 영상이 재생됩니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 Shuffle 프로퍼티 설명과 정확히 일치하며, 질문에 대해 간결하고 명확하게 답변하고 있습니다. [source_doc] | Youtube 영상을 UI에서 재생하는 기능을 제공합니다. # Properties - **boolean IgnoreMapLayerCheck [Sync]** SortingLayer에 Map Layer 이름을 지정했을 때 자동 치환을 수행하지 않습니다. - **int32 OrderInLayer [Sync]** 같은 Layer 내의 우선순위를 결정합니다. 수가 클수록 앞에 보입니다. - **boolean OverrideSorting [Sync] [ReadOnly]** SortingLayer 및 OrderInLayer 값을

[task] | single_turn [pass] | ✅ 통과 [title] | DamageSkinSpawnerComponent [question] | HitComponent의 ColliderOffset과 BoxSize 값을 활용하여 대미지 스킨이 상단 중앙에 나오도록 DamageSkinOffset을 설정하는 스크립트 작성 방법은 무엇인가요? [answer] | HitComponent의 ColliderOffset과 BoxSize를 활용하여 대미지 스킨이 상단 중앙에 출력되도록 설정하려면, 엔티티의 Scale을 반영한 실제 히트박스 크기와 위치를 계산해야 합니다. 다음은 OnBeginPlay()에서 DamageSkinSpawnerComponent.DamageSkinOffset을 설정하는 mLua 스크립트입니다. ```lua Method: [server only] void OnBeginPlay() { local damageSkinSpawnerComponent = self.Entity [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 예제와 설명을 정확히 재구성하여 질문에 완벽하게 답했으며, mLua 문법과 API 사용이 모두 올바릅니다. [source_doc] | Entity에 피격 이벤트가 발생했을 때 대미지 스킨을 출력합니다. # Properties - **Vector2 DamageSkinOffset [Sync]** 대미지 스킨이 출력되는 위치를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromInspector]** 계층 구조상에서 이 컴포넌트가 Enable 상태인지를 반환합니

[task] | single_turn [pass] | ✅ 통과 [title] | YoutubePlayerGUIComponent [question] | SortingLayer가 Map Layer로 지정되어 있는데도 자동 치환이 안 되고 다른 레이어처럼 동작할 때 어떤 프로퍼티 값을 수정해야 하나요? [answer] | `IgnoreMapLayerCheck` 프로퍼티의 값을 `true`로 설정해야 합니다. 이 값이 `true`일 경우 `SortingLayer`에 Map Layer 이름이 지정되어 있더라도 자동 치환을 수행하지 않고, 다른 일반 레이어와 동일하게 동작합니다. ```lua Property: [Sync] boolean IgnoreMapLayerCheck = true ``` [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서의 정의에 정확히 부합하며, 질문의 요구사항을 충족하는 간결하고 정확한 답변입니다. [source_doc] | Youtube 영상을 UI에서 재생하는 기능을 제공합니다. # Properties - **boolean IgnoreMapLayerCheck [Sync]** SortingLayer에 Map Layer 이름을 지정했을 때 자동 치환을 수행하지 않습니다. - **int32 OrderInLayer [Sync]** 같은 Layer 내의 우선순위를 결정합니다. 수가 클수록 앞에 보입니다. - **boolean OverrideSorting [Sync] [ReadOnly]** SortingLayer 및 OrderInLayer 값을

[task] | single_turn [pass] | ✅ 통과 [title] | DamageSkinSpawnerComponent [question] | OnBeginPlay에서 DamageSkinSpawnerComponent가 nil인지 확인하는 것이 왜 필요하며, 컴포넌트가 존재하지 않을 경우 어떻게 처리해야 하나요? [answer] | `OnBeginPlay`에서 `DamageSkinSpawnerComponent`가 `nil`인지 확인하는 것은 해당 엔티티에 `DamageSkinSpawnerComponent`가 실제로 붙어 있지 않을 수 있기 때문입니다. 모든 엔티티에 피격 시 대미지 스킨을 출력하는 기능이 필요한 것은 아니며, 특정 엔티티에만 이 컴포넌트가 추가되어 있을 수 있습니다. 만약 컴포넌트가 존재하지 않는 상태에서 `damageSkinSpawnerComponent.DamageSkinOffset`과 같은 프로퍼티에 접근하거나 값을 설정하려고 하면 스크립 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서의 예제 코드를 정확히 인용하며 nil 체크의 필요성과 처리 방식을 명확히 설명하여 질문에 완벽하게 부합합니다. [source_doc] | Entity에 피격 이벤트가 발생했을 때 대미지 스킨을 출력합니다. # Properties - **Vector2 DamageSkinOffset [Sync]** 대미지 스킨이 출력되는 위치를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromInspector]** 계층 구조상에서 이 컴포넌트가 Enable 상태인지를 반환합니

[task] | single_turn [pass] | ✅ 통과 [title] | DamageSkinSpawnerComponent [question] | 스케일(Scale)이 적용된 엔티티에서 HitComponent의 크기를 계산할 때 TransformComponent의 Scale을 Vector2로 변환하여 곱해야 하는 이유는 무엇인가요? [answer] | `TransformComponent`의 `Scale`은 엔티티의 3차원 스케일 값(`Vector3`)을 가지므로, 2차원 평면에서 동작하는 `HitComponent`의 `ColliderOffset`과 `BoxSize`(`Vector2`)에 직접 곱할 수 없습니다. 두 벡터의 차원이 다르면 곱셈 연산이 불가능하거나 의도하지 않은 결과가 나오기 때문에, `Scale`의 x, y 성분을 추출한 `Vector2` 타입의 값(`weight`)을 생성하여 곱해야 합니다. 이렇게 하면 엔티티가 3D 공간에서 얼마나 확대/축소되었는지에 따라 2 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 예제 코드와 API를 정확히 인용하여 Scale 변환의 필요성을 논리적으로 설명하고, 코드 예제도 문서와 일치하므로 우수합니다. [source_doc] | Entity에 피격 이벤트가 발생했을 때 대미지 스킨을 출력합니다. # Properties - **Vector2 DamageSkinOffset [Sync]** 대미지 스킨이 출력되는 위치를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromInspector]** 계층 구조상에서 이 컴포넌트가 Enable 상태인지를 반환합니

[task] | single_turn [pass] | ✅ 통과 [title] | DamageSkinSpawnerComponent [question] | DamageSkinSpawnerComponent가 활성화되어 있는데도 대미지 스킨이 화면에 전혀 표시되지 않을 때, 계층 구조의 Enable 상태와 관련하여 확인해야 할 점은 무엇인가요? [answer] | DamageSkinSpawnerComponent가 활성화되어 있음에도 대미지 스킨이 표시되지 않는 경우, **계층 구조(Hierarchy) 전체의 활성화 상태**를 확인해야 합니다. 메이플스토리 월드의 컴포넌트에는 `Enable` 속성과 `EnableInHierarchy` 속성이 있습니다. 1. **`Enable` (boolean [Sync])**: 해당 컴포넌트 자체의 활성화 여부입니다. 2. **`EnableInHierarchy` (boolean [ReadOnly] [HideFromInspector])**: 계층 구조 상에 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서의 EnableInHierarchy 정의와 제약 조건을 정확히 해석하여 문제를 해결하는 구체적인 디버깅 코드까지 제공하여 매우 유용하고 정확합니다. [source_doc] | Entity에 피격 이벤트가 발생했을 때 대미지 스킨을 출력합니다. # Properties - **Vector2 DamageSkinOffset [Sync]** 대미지 스킨이 출력되는 위치를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromInspector]** 계층 구조상에서 이 컴포넌트가 Enable 상태인지를 반환합니

[task] | two_turn [pass] | ✅ 통과 [title] | StateComponent [question] | StateComponent를 사용하여 엔티티의 상태 전이를 제어하는 기본적인 구조와 주요 프로퍼티를 어떻게 활용하나요? [answer] | StateComponent는 사용자 정의 StateType, ConditionType, 또는 StateSet을 활용하여 엔티티의 상태별 행동과 전이 규칙을 정의하고 제어하는 컴포넌트입니다. ### 주요 프로퍼티 활용 StateComponent는 상태 머신의 현재 상태와 설정 정보를 확인하기 위한 다음과 같은 프로퍼티를 제공합니다. 1. **CurrentStateName (string)** * 현재 엔티티가 위치한 상태의 이름을 반환합니다. * `[Sync]` 속성이 있어 클라이언트와 서버 간에 동기화되며 [followup] | `CurrentStateName` 프로퍼티를 통해 현재 상태를 확인하고, `ChangeState("HIT")` 메서드를 호출하여 피격 상태로 강제 전환하는 mLua 코드 예시를 작성해 주세요. [followup_answer] | `CurrentStateName` 프로퍼티를 확인하고 `ChangeState("HIT")`를 호출하여 피격 상태로 강제 전환하는 mLua 코드 예시는 다음과 같습니다. ```lua Method: [server only] void OnEntityHit() { local stateComponent = self.Entity.StateComponent if stateComponent == nil then return end -- 현재 상태 확인 local currentS [scores] | helpfulness=4 correctness=4 coherence=4 complexity=4 verbosity=2 [judge_reason] | 문서의 프로퍼티, 메서드, 이벤트 정보를 정확히 인용하고 mLua 문법 규칙에 부합하는 예시를 제공하여 질문에 충실히 답했습니다. [source_doc] | 사용자 정의 StateType, ConditionType 혹은 StateSet을 사용해 상태별 행동과 전이 규칙을 정의, 제어하는 기능을 제공합니다. # Properties - **string CurrentStateName [Sync] [ReadOnly] [HideFromInspector]** 현재 상태의 이름을 얻어올 수 있습니다. - **boolean IsLegacy [ReadOnly]** 이 Component가 이전의 시스템으로 동작할지를 설정합니다. 설정에 따라 상태의 전이 및 StateType과 Condition

[task] | two_turn [pass] | ✅ 통과 [title] | YoutubePlayerGUIComponent [question] | YoutubePlayerGUIComponent를 사용하여 유튜브 영상을 재생하는 기본적인 구조와 설정 방법은 무엇인가요? [answer] | `YoutubePlayerGUIComponent`를 사용하여 유튜브 영상을 재생하려면, 먼저 해당 컴포넌트 참조를 얻고 재생할 영상의 URL을 설정한 후, 원하는 시점에 재생 메서드를 호출하는 구조로 작성합니다. 구체적인 설정과 구현 방법은 다음과 같습니다. 1. **컴포넌트 참조 및 URL 설정**: `OnBeginPlay` 생명주기 메서드 내에서 `self.Entity.YoutubePlayerGUIComponent`를 통해 컴포넌트 참조를 가져옵니다. 이후 `Urls` 프로퍼티에 재생할 유튜브 영상 URL을 배열 형식으로 [followup] | OnBeginPlay에서 Urls 배열에 복수의 영상을 등록하고, 특정 키 입력 시 해당 인덱스의 영상을 선택하여 재생하는 코드를 작성해 주세요. [followup_answer] | 참고 문서에는 `YoutubePlayerGUIComponent`의 `Urls` 프로퍼티에 배열을 설정하고, `Play()`, `Pause()`, `Jump()`, `PlayPause()` 메서드를 호출하는 방식만 안내되어 있습니다. 문서에 명시된 API 중 특정 인덱스의 영상을 선택하여 재생하는 메서드(예: `PlayIndex(number index)` 등)는 존재하지 않습니다. 따라서 주어진 문서의 정보만으로는 "특정 인덱스의 영상을 선택하여 재생"하는 코드를 작성할 수 없습니다. 문서에서 확인 가능한 기능은 다음과 같습니다: [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 예제 코드를 정확히 인용하고, 각 메서드(Play, Pause, Jump, PlayPause)의 기능과 키 매핑을 명확히 설명하여 질문에 완벽하게 부응합니다. [source_doc] | 재생하고 싶은 Youtube 영상 url을 입력하고, 특정 키를 눌러 영상 재생시키고 정지시키는 예제입니다. ```lua Property: [None] YoutubePlayerGUIComponent youtubePlayer = nil Method: [client only] void OnBeginPlay () { self.youtubePlayer = self.Entity.YoutubePlayerGUIComponent self.youtubePlayer.Urls = {"Http://WebUrl"} } Event Handler:

[task] | code [pass] | ✅ 통과 [title] | InventoryComponent [question] | HandleInventoryItemInitEvent 이벤트 핸들러에서 Items 배열을 확인하여 ItemDataTableName이 "Potion"인 아이템이 하나 이상 존재하는지 boolean 타입의 local 변수에 저장하고, HandleInventoryItemModifiedEvent 이벤트 핸들러에서 해당 상태를 갱신하여 false에서 true로 전환되는 시점에 log로 "Potion acquired"를 출력하도록 하는 스크립트를 작성해줘 [answer] | 요청하신 동작은 두 개의 이벤트 핸들러와 하나의 프로퍼티를 사용하여 구현할 수 있습니다. 1. **Property**: `HasPotion` (boolean)을 선언하여 현재 인벤토리에 "Potion"이 있는지 상태를 저장합니다. 2. **HandleInventoryItemInitEvent**: 게임 입장 시 초기 아이템 목록(`Items`)을 순회하며 `ItemDataTableName`이 "Potion"인지 확인합니다. 하나라도 발견되면 `HasPotion`을 `true`로 설정합니다. 3. **HandleInventory [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서와 규칙에 기반하여 요청된 boolean 상태 관리 및 이벤트 전환 로직을 정확하고 명확하게 구현했습니다. [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] | instruction_following [pass] | ✅ 통과 [title] | YoutubePlayerGUIComponent [question] | YoutubePlayerGUIComponent에서 정의된 이벤트 2가지(OrderInLayerChangedEvent, SortingLayerChangedEvent)의 이름과 발생 조건을 '이벤트 이름: 발생 조건' 형식으로 한 줄씩 분리해서 출력하세요. [answer] | OrderInLayerChangedEvent: Component의 OrderInLayer가 변경되었을 때 발생합니다. SortingLayerChangedEvent: 컴포넌트의 SortingLayer가 변경되었을 때 발생합니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 두 이벤트의 이름과 발생 조건을 요청된 형식으로 정확하고 간결하게 출력했습니다. [source_doc] | Youtube 영상을 UI에서 재생하는 기능을 제공합니다. # Properties - **boolean IgnoreMapLayerCheck [Sync]** SortingLayer에 Map Layer 이름을 지정했을 때 자동 치환을 수행하지 않습니다. - **int32 OrderInLayer [Sync]** 같은 Layer 내의 우선순위를 결정합니다. 수가 클수록 앞에 보입니다. - **boolean OverrideSorting [Sync] [ReadOnly]** SortingLayer 및 OrderInLayer 값을

[task] | single_turn [pass] | ✅ 통과 [title] | NameTagComponent [question] | NameTagComponent의 FontColor에 Color.magenta 같은 값을 직접 대입할 수 있는가요? [answer] | 네, 가능합니다. `NameTagComponent`의 `FontColor` 프로퍼티는 `Color` 타입을 가지며, `Color.magenta`와 같은 Color 상수를 직접 대입하여 글자 색을 변경할 수 있습니다. 참고 문서의 예제에서도 다음과 같이 `nametag.FontColor = Color.magenta` 및 `nametag.FontColor = Color.cyan`으로 직접 값을 설정하는 방식을 사용하고 있습니다. ```lua Event Handler: [server only] [service: UserService] [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 예제와 프로퍼티 정의에 근거하여 질문에 정확하고 간결하게 답변했으며, 코드 예제도 문서와 일치합니다. [source_doc] | 엔티티 이름표를 표시하고 관련 정보들을 설정합니다. # Properties - **boolean Bold [Sync]** 굵은 텍스트 사용 여부를 설정합니다. - **Color FontColor [Sync]** 글자색을 변경합니다. - **Vector2 FontOffset [Sync]** 이름표 내 글자 위치를 상하좌우로 조정합니다. - **float FontSize [Sync]** 글자 크기를 설정합니다. - **string Name [Sync]** 이름표에 표시할 이름을 설정합니다. - **DataRef N

[task] | single_turn [pass] | ✅ 통과 [title] | NameTagComponent [question] | 이름표의 글자 위치를 미세하게 조정할 때 FontOffset과 OffsetY의 역할 차이가 무엇인가요? [answer] | `FontOffset`과 `OffsetY`는 이름표의 위치를 조정하는 방식이 다릅니다. **1. FontOffset (Vector2)** * **역할:** 이름표 내부에 있는 **글자 자체**의 위치를 상하좌우로 조정합니다. * **특징:** `Vector2` 타입으로, X축(좌우)과 Y축(상하) 방향 모두를 동시에 제어할 수 있습니다. * **용도:** 이름표 배경이나 다른 요소에 글자가 겹치지 않도록 미세하게 보정할 때 사용합니다. **2. OffsetY (float)** * **역할:** **이름표 전체**의 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 정의와 예시를 정확히 인용하여 두 프로퍼티의 차이를 명확하고 간결하게 설명했습니다. [source_doc] | 엔티티 이름표를 표시하고 관련 정보들을 설정합니다. # Properties - **boolean Bold [Sync]** 굵은 텍스트 사용 여부를 설정합니다. - **Color FontColor [Sync]** 글자색을 변경합니다. - **Vector2 FontOffset [Sync]** 이름표 내 글자 위치를 상하좌우로 조정합니다. - **float FontSize [Sync]** 글자 크기를 설정합니다. - **string Name [Sync]** 이름표에 표시할 이름을 설정합니다. - **DataRef N

[task] | single_turn [pass] | ✅ 통과 [title] | YoutubePlayerGUIComponent [question] | ClearScreen 메서드에 targetUserId 인자를 전달하지 않고 호출하면 어떤 효과가 발생하나요? [answer] | `ClearScreen` 메서드의 `targetUserId` 인자는 선택 사항입니다. 이 인자를 전달하지 않고 호출하면 현재 클라이언트 사용자를 대상으로 영상 재생이 정지되고 화면이 지워집니다. 참고로 `ClearScreen`은 `[Client]` 실행 공간에서 동작하는 메서드이며, 기본 동작은 "영상 재생을 정지하고, 화면을 지우는" 것입니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서의 API 정의와 실행 공간([Client]) 정보를 정확히 인용하여, 선택 인자가 생략될 때의 합리적 동작(현재 클라이언트 대상)을 명확하고 간결하게 설명했습니다. [source_doc] | Youtube 영상을 UI에서 재생하는 기능을 제공합니다. # Properties - **boolean IgnoreMapLayerCheck [Sync]** SortingLayer에 Map Layer 이름을 지정했을 때 자동 치환을 수행하지 않습니다. - **int32 OrderInLayer [Sync]** 같은 Layer 내의 우선순위를 결정합니다. 수가 클수록 앞에 보입니다. - **boolean OverrideSorting [Sync] [ReadOnly]** SortingLayer 및 OrderInLayer 값을

← → 방향키로 페이지 이동 · 숫자 입력 후 Enter로 점프