← 목록

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

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

[task] | code [pass] | ✅ 통과 [title] | AvatarBodyActionSelectorComponent [question] | AvatarBodyActionSelectorComponent의 Enable 프로퍼티가 true인지 확인하고, EnableInHierarchy 프로퍼티를 통해 계층 구조 내 실제 활성화 여부를 점검하는 스크립트를 작성해줘 [answer] | `AvatarBodyActionSelectorComponent`는 `Component`에서 상속받은 `Enable`과 `EnableInHierarchy` 프로퍼티를 가지고 있습니다. `Enable`은 해당 컴포넌트 자체의 활성화 여부를, `EnableInHierarchy`는 부모 엔티티나 상위 계층의 `Enable` 상태까지 고려한 실제 실행 가능 여부를 반환합니다. 요청하신 두 프로퍼티를 확인하는 mLua 스크립트는 다음과 같습니다. ```lua Method: [server only] void OnBeginPlay() { [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=3 coherence=4 complexity=2 verbosity=2 [judge_reason] | API 명세와 논리는 정확하지만, mLua의 self.X 접근 규칙을 정확히 반영하지 않고 일반 컴포넌트처럼 self.AvatarBodyActionSelectorComponent로 호출하는 것이 문서/규칙과 어긋나며, 특정 엔티티에 대한 접근 방식이 불명확함. [source_doc] | 아바타의 몸통 Action을 선택해 적용시키는 컴포넌트입니다. # Properties - **MapleAvatarBodyActionState ActionState** 현재 Action 상태입니다. - **ReadOnlyDictionary<MapleAvatarBodyActionState, ReadOnlyList<MapleAvatarActionStateElement>> StateActionDic [ReadOnly] [HideFromInspector]** 상태에 대한 정보값입니다. 추후 개선될 예정입니다. ##### inhe

[task] | code [pass] | ✅ 통과 [title] | SoundService [question] | _SoundService:PlayBGM, _SoundService:IsPlayBGM, _SoundService:PauseBGM, _SoundService:ResumeBGM, _EntityService, _SpawnService 를 사용하여 게임 시작 시 BGM을 재생하고, BGM 재생 상태에 따라 버튼 텍스트를 "일시정지" 또는 "재생"으로 동적으로 변경하는 스크립트를 작성해줘 [answer] | _SoundService의 BGM 재생 상태 변경 시 `SoundPlayStateChangedEvent` 이벤트 핸들러를 통해 버튼 텍스트를 갱신하고, 버튼 클릭 시 `_SoundService:IsPlayBGM()`으로 현재 상태를 확인하여 `_SoundService:PauseBGM()` 또는 `_SoundService:ResumeBGM()`을 호출하는 방식으로 구현할 수 있습니다. ```lua Property: [None] Entity bgmToggleButton = nil Entity bgmToggleText = nil Me [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 명시된 API와 이벤트를 정확히 활용하여 BGM 상태에 따라 버튼 텍스트를 동적으로 변경하는 요구사항을 완벽하게 충족했습니다. [source_doc] | # Events - **SoundPlayStateChangedEvent** SoundService의 BGM, SoundComponent의 효과음 재생 상태가 변경될 때 발생하는 이벤트입니다. # Examples #### PlayBGM 시작 시 BGM을 재생하고, BGM을 일시정지하거나 재생을 재개 할 수 있는 버튼을 만드는 예제입니다. ```lua Method: [client only] void OnBeginPlay() { local defaultUIGroup = _EntityService:GetEntityByPath

[task] | two_turn [pass] | ✅ 통과 [title] | CustomFootholdComponent [question] | 이동하는 발판 위에서 RigidbodyComponent의 상대적 움직임을 제어하는 RigidbodyMovementOption 속성은 어떤 값을 가지나요? [answer] | `RigidbodyMovementOption` 속성은 `RigidbodyMovementOptionType` 타입을 가지며, 이동하는 발판 위에서 RigidbodyComponent가 상대적으로 어떻게 움직일지를 설정합니다. 참고 문서에는 `RigidbodyMovementOptionType`에 포함된 구체적인 열거형 값(예: StayOnFoothold, MoveWithFoothold 등) 목록이 명시되어 있지 않습니다. 따라서 해당 타입이 어떤 값을 가지는지는 문서에 제공된 정보만으로는 확인할 수 없습니다. [followup] | PhysicsInteractable이 true일 때 Dynamic 강체와의 충돌은 어떻게 처리되나요? [followup_answer] | `PhysicsInteractable`이 `true`인 경우, Physics 기능을 사용하는 Dynamic 강체(PhysicRigidbody)와 충돌할 수 있습니다. 참고 문서에는 충돌이 발생했을 때 구체적인 처리 로직(예: 반발력 계산, 충돌 이벤트 발생 등)에 대한 설명이 제공되지 않았습니다. [scores] | helpfulness=3 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 없는 열거형 값을 지어내지 않고 문서에 명시된 타입과 설명만 정확히 제시했으며, 문서 한계를 명확히 고지하여 신뢰도가 높습니다. [source_doc] | 사용자 정의 발판을 만드는 기능을 제공합니다. 발판의 모양과 속성을 설정할 수 있습니다 # Properties - **SyncList<List<Vector2>> edgeLists [Sync]** 발판을 나타냅니다. 하나의 발판은 여러 개의 연결점으로 구성됩니다. - **float FootholdDrag [Sync]** RigidbodyComponent가 포함된 엔티티가 발판 위에 있을 때 적용되는 마찰력입니다. 값이 클수록 빠르게 감속합니다. - **float FootholdForce [Sync]** Rigidbody

[task] | instruction_following [pass] | ✅ 통과 [title] | CanvasGroupComponent [question] | BlocksRaycasts와 Interactable 속성이 true로 설정되었을 때 자식 UI가 화면 입력을 처리하는 방식을 3문장 이내로 설명하세요. [answer] | BlocksRaycasts가 true로 설정되면 자식 UI는 화면 터치나 마우스 클릭 입력을 받을 수 있으며, 뒤에서 가려진 UI는 입력을 받지 못합니다. Interactable이 true로 설정되어야 사용자 입력을 받았을 때 실제로 동작이 발생합니다. 두 속성이 모두 true일 때 자식 UI는 화면 입력을 정상적으로 수신하고 처리합니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 BlocksRaycasts와 Interactable 속성 설명을 정확히 요약하여 질문에 적절히 답했습니다. [source_doc] | 자식 UI Entity의 공통 속성을 한 곳에서 제어할 수 있는 기능을 제공합니다. # Properties - **boolean BlocksRaycasts** true로 설정할 경우 자식 UI는 화면 터치 또는 마우스 클릭 입력을 받을 수 있습니다. 뒤에 가려진 UI는 입력을 받지 못합니다. - **float GroupAlpha** 자식 UI의 투명도를 설정합니다. 0 이상, 1 이하의 값을 설정할 수 있습니다. - **boolean Interactable** 자식 UI의 상호작용 가능 여부를 설정합니다. false로

[task] | code [pass] | ✅ 통과 [title] | AvatarBodyActionSelectorComponent [question] | AvatarBodyActionSelectorComponent가 장착된 엔티티의 Entity 프로퍼티를 참조하여 해당 엔티티의 TransformComponent 위치를 조회하는 스크립트를 작성해줘 [answer] | `AvatarBodyActionSelectorComponent`가 장착된 엔티티의 `Entity` 프로퍼티를 통해 해당 엔티티의 `TransformComponent`에 접근하여 위치(`Position`)를 조회하는 스크립트입니다. 참고 문서에 따르면 `AvatarBodyActionSelectorComponent`는 `Component`에서 상속되어 `Entity` 프로퍼티를 가지고 있으며, 컴포넌트 접근 시 `self.Entity.TransformComponent.Position` 형태로 사용할 수 있습니다. ```lua Pro [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서의 Entity 프로퍼티 존재 여부와 system 규칙의 컴포넌트 접근 문법(self.Entity.TransformComponent.Position)을 정확히 적용하여 질문에 부합하는 코드를 제공했습니다. [source_doc] | 아바타의 몸통 Action을 선택해 적용시키는 컴포넌트입니다. # Properties - **MapleAvatarBodyActionState ActionState** 현재 Action 상태입니다. - **ReadOnlyDictionary<MapleAvatarBodyActionState, ReadOnlyList<MapleAvatarActionStateElement>> StateActionDic [ReadOnly] [HideFromInspector]** 상태에 대한 정보값입니다. 추후 개선될 예정입니다. ##### inhe

[task] | single_turn [pass] | ✅ 통과 [title] | ChatComponent [question] | ChatEmotionDuration 값을 0으로 설정하면 감정 표현이 즉시 사라지나요, 아니면 기본값이 적용되나요? [answer] | 제공된 문서에는 `ChatEmotionDuration` 프로퍼티가 "아바타 감정 표현 지속 시간을 설정합니다"라고만 설명되어 있을 뿐, 값을 0으로 설정했을 때의 구체적인 동작(즉시 사라지거나 기본값이 적용되는지 등)에 대한 정보가 없습니다. 따라서 주어진 문서만으로는 이 질문에 대한 정확한 답변을 할 수 없습니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 동작을 지어내지 않고, 제공된 정보 범위 내에서 정직하게 답변을 거절하여 정확도와 유용성이 높습니다. [source_doc] | 플레이어끼리 소통을 할 수 있는 채팅 기능을 지원해주는 컴포넌트입니다. # Properties - **float ChatEmotionDuration** 아바타 감정 표현 지속 시간을 설정합니다. - **boolean EnableVoiceChat [MakerOnly]** 보이스 채팅 버튼의 표시 및 사용 여부를 설정합니다. - **boolean Expand** 채팅창을 펼칠 수 있는 기능입니다. - **boolean HideWorldChatButton [MakerOnly]** 월드 채팅 버튼을 숨기는 기능입니다. -

[task] | two_turn [pass] | ✅ 통과 [title] | Entity [question] | 엔티티의 CurrentMap과 CurrentWorld 속성을 사용하여 현재 위치 정보를 조회할 때, Path 속성과 Name 속성의 값이 각각 어떤 형식으로 반환되는지 구체적으로 알려주세요. [answer] | 제공된 참고 문서에는 `CurrentMap`, `CurrentWorld`, `Path`, `Name` 속성의 **형식(타입)과 용도**만 정의되어 있고, 실제 런타임에서 반환되는 **구체적인 문자열 형식(예: `/maps/map01/obj` 같은 정확한 구조)** 에 대한 설명은 포함되어 있지 않습니다. 따라서 문서 근거만으로 "Path가 어떤 문자열 형식으로, Name이 어떤 문자열 형식으로 반환되는지"를 구체적으로 약속할 수는 없습니다. 다만, 문서에 명시된 속성 정의와 예제 코드를 바탕으로 각 속성이 의미하는 바와 접근 방 [followup] | Path가 "/maps/map01/obj"와 같은 구조를 가진다면, 이를 파싱하여 특정 레벨의 엔티티를 추출하거나 _EntityService:GetEntityByPath와 함께 사용하는 코드를 작성해 주세요. [followup_answer] | 제공된 참고 문서에는 `Path` 속성이 `/maps/map01/obj`와 같은 슬래시(`/`)로 구분된 구조를 가진다는 명시적인 정의가 없습니다. 문서에서는 `Path`를 단순히 "엔티티의 경로"를 반환하는 `string [ReadOnly]` 속성으로만 정의하고 있으며, 실제 경로 문자열의 형식(슬래시 구분 여부, 루트 경로 포함 여부 등)은 설명되어 있지 않습니다. 따라서 질문에서 전제로 한 "/maps/map01/obj" 형식의 파싱 로직을 **문서 근거만으로 검증하거나 표준적인 사용법으로 제시할 수 없습니다.** 다만, [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서에 없는 구체적인 문자열 형식을 지어내지 않고, 문서에 명시된 타입과 용도만 정확히 설명하며 문서 미포함 사항임을 명확히 구분하여 질문에 충실히 답했습니다. [source_doc] | MSW 내에서 존재하는 객체입니다. # Properties - **ReadOnlyList<Entity> Children [ReadOnly]** 엔티티의 자식 리스트입니다. - **Entity CurrentMap** 엔티티가 속한 맵입니다. - **string CurrentMapName [ReadOnly]** 엔티티가 속한 맵의 이름입니다. - **Entity CurrentWorld** 엔티티가 속한 월드 Entity입니다. - **boolean Enable** 엔티티가 활성화되어 있는지 여부입니다. - **bo

[task] | two_turn [pass] | ❌ 탈락 [title] | Entity [question] | 엔티티에 컴포넌트를 동적으로 추가하거나 제거할 때 어떤 메서드를 사용해야 하나요? [answer] | 엔티티에 컴포넌트를 동적으로 추가하거나 제거할 때는 다음 메서드를 사용합니다. **컴포넌트 추가** * **`AddComponent(string typename)`**: 컴포넌트 타입의 이름(문자열)을 인수로 전달하여 해당 컴포넌트를 추가합니다. * **`AddComponent(Type componentType)`**: 컴포넌트 타입 객체를 인수로 전달하여 해당 컴포넌트를 추가합니다. **컴포넌트 제거** * **`RemoveComponent(string typename)`**: 컴포넌트 타입의 이름(문자열)을 인수로 [followup] | AddComponent와 RemoveComponent 호출 시 [ControlOnly] 제약이 적용되는 경우와 그렇지 않은 경우의 차이와, 특정 타입 이름으로 컴포넌트를 찾지 못했을 때의 예외 처리 방법은 무엇인가요? [followup_answer] | 제공된 참고 문서를 기준으로 질문에 답변합니다. **1. `[ControlOnly]` 제약의 차이** 참고 문서에 따르면 `AddComponent`와 `RemoveComponent` 메서드는 모두 **`[ControlOnly]`** 속성을 가지고 있습니다. * 이는 해당 메서드들이 **컨트롤(직접 조작) 환경에서만 사용 가능**하다는 것을 의미합니다. * 문서에는 `[ControlOnly]`가 적용되지 않는(일반 런타임에서 사용 가능한) `AddComponent`나 `RemoveComponent` 버전에 대한 정보가 없습니 [scores] | helpfulness=3 correctness=2 coherence=3 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 'RigidbodyComponent' 예시를 지어냈고, mLua 규칙상 존재하지 않는 Method 블록 내부에서 AddComponent를 호출하는 잘못된 코드 구조를 제시했음. [source_doc] | - **Component AddComponent(string typename) [ControlOnly]** typename에 해당하는 컴포넌트를 추가합니다. - **Component AddComponent(Type componentType) [ControlOnly]** componentType에 해당하는 컴포넌트를 추가합니다. - **void AttachChild(Entity child)** child를 이 엔티티의 자식으로 편입시킵니다. - **boolean AttachTo(Entity parent) [ControlOn

[task] | instruction_following [pass] | ❌ 탈락 [title] | CanvasGroupComponent [question] | CanvasGroupComponent의 GroupAlpha를 0.5로 설정하고 BlocksRaycasts를 true로 만드는 mLua 코드를 출력하되, 설명은 주석으로만 작성하세요. [answer] | ```lua Property: [None] Entity TargetUI = /ui/TargetUI Method: [client only] void OnBeginPlay() { -- 자식 UI의 투명도를 50%로 설정합니다. self.TargetUI.CanvasGroupComponent.GroupAlpha = 0.5 -- 자식 UI가 화면 터치 또는 마우스 클릭 입력을 받을 수 있도록 설정합니다. self.TargetUI.CanvasGroupComponent.BlocksRaycasts = tru [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=3 complexity=2 verbosity=2 [judge_reason] | Entity 타입 프로퍼티에 리터럴 경로를 할당하는 문법과 CanvasGroupComponent 접근 방식이 mLua 표준 규칙과 문서에 명시되지 않아 정확도가 낮음 [source_doc] | 자식 UI Entity의 공통 속성을 한 곳에서 제어할 수 있는 기능을 제공합니다. # Properties - **boolean BlocksRaycasts** true로 설정할 경우 자식 UI는 화면 터치 또는 마우스 클릭 입력을 받을 수 있습니다. 뒤에 가려진 UI는 입력을 받지 못합니다. - **float GroupAlpha** 자식 UI의 투명도를 설정합니다. 0 이상, 1 이하의 값을 설정할 수 있습니다. - **boolean Interactable** 자식 UI의 상호작용 가능 여부를 설정합니다. false로

[task] | code [pass] | ✅ 통과 [title] | AvatarBodyActionSelectorComponent [question] | AvatarBodyActionSelectorComponent의 ActionState가 변경될 때 발생하는 ActionStateChangedEvent 핸들러를 등록하여 상태 변경 로그를 출력하는 스크립트를 작성해줘 [answer] | `AvatarBodyActionSelectorComponent`의 `ActionStateChangedEvent` 이벤트 핸들러를 등록하여 상태 변경 시 로그를 출력하는 스크립트는 다음과 같습니다. 참고 문서에 따르면 `ActionStateChangedEvent`는 액션 상태가 변경될 때 발생하는 이벤트이며, 해당 이벤트 핸들러를 작성하여 `ActionState`를 로그로 출력할 수 있습니다. ```lua Property: [None] MapleAvatarBodyActionState CurrentActionState = Maple [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=3 coherence=4 complexity=2 verbosity=2 [judge_reason] | 요청된 이벤트 핸들러와 로그 출력 구조는 적절하지만, 문서에 명시되지 않은 event.ActionState 필드와 MapleAvatarBodyActionState.None 상수를 지어내어 정확도가 약간 하락했습니다. [source_doc] | 아바타의 몸통 Action을 선택해 적용시키는 컴포넌트입니다. # Properties - **MapleAvatarBodyActionState ActionState** 현재 Action 상태입니다. - **ReadOnlyDictionary<MapleAvatarBodyActionState, ReadOnlyList<MapleAvatarActionStateElement>> StateActionDic [ReadOnly] [HideFromInspector]** 상태에 대한 정보값입니다. 추후 개선될 예정입니다. ##### inhe

[task] | code [pass] | ✅ 통과 [title] | SoundService [question] | _SoundService:PlayBGM, _SoundService:IsPlayBGM, _SoundService:PauseBGM, _SoundService:ResumeBGM, _EntityService, _SpawnService, TextComponent 를 사용하여 BGM 재생 상태에 따라 텍스트 컴포넌트의 텍스트를 실시간으로 업데이트하는 스크립트를 작성해줘 [answer] | 요청하신 API 중 `_SoundService:PlayBGM`, `_SoundService:IsPlayBGM`, `_SoundService:PauseBGM`, `_SoundService:ResumeBGM`, `_EntityService`, `_SpawnService`, `TextComponent`는 모두 제공된 참고 문서의 예제 코드에서 사용 예가 확인됩니다. 참고 문서에는 BGM 재생 상태 변경 시 발생하는 `SoundPlayStateChangedEvent` 이벤트가 존재한다고 명시되어 있습니다. 따라서 버튼 클릭 시 BGM을 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 API와 이벤트를 정확히 활용하여 요청된 기능을 구현했으며, 코드 구조와 설명이 명확하고 적절합니다. [source_doc] | # Events - **SoundPlayStateChangedEvent** SoundService의 BGM, SoundComponent의 효과음 재생 상태가 변경될 때 발생하는 이벤트입니다. # Examples #### PlayBGM 시작 시 BGM을 재생하고, BGM을 일시정지하거나 재생을 재개 할 수 있는 버튼을 만드는 예제입니다. ```lua Method: [client only] void OnBeginPlay() { local defaultUIGroup = _EntityService:GetEntityByPath

[task] | single_turn [pass] | ✅ 통과 [title] | ChatComponent [question] | EnableVoiceChat 속성이 MakerOnly 태그가 붙어 있는데, 플레이어가 직접 이 값을 변경해서 보이스 채팅을 켤 수 있나요? [answer] | 아니요, 플레이어가 직접 이 값을 변경할 수 없습니다. `EnableVoiceChat` 속성에 **MakerOnly** 태그가 붙어 있다는 것은 메이플스토리 월드의 제작자(Maker)만 설정할 수 있는 값임을 의미합니다. 따라서 플레이어는 게임 실행 중 이 프로퍼티 값을 직접 수정하여 보이스 채팅을 켜거나 끌 수 없으며, 제작자가 에디터에서 미리 설정해 둔 값 그대로 동작합니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | MakerOnly 태그의 의미를 정확히 해석하여 플레이어가 변경할 수 없음을 명확히 설명했습니다. [source_doc] | 플레이어끼리 소통을 할 수 있는 채팅 기능을 지원해주는 컴포넌트입니다. # Properties - **float ChatEmotionDuration** 아바타 감정 표현 지속 시간을 설정합니다. - **boolean EnableVoiceChat [MakerOnly]** 보이스 채팅 버튼의 표시 및 사용 여부를 설정합니다. - **boolean Expand** 채팅창을 펼칠 수 있는 기능입니다. - **boolean HideWorldChatButton [MakerOnly]** 월드 채팅 버튼을 숨기는 기능입니다. -

[task] | code [pass] | ❌ 탈락 [title] | Entity [question] | HandleUserEnterEvent에서 사용자가 입장하면 Entity의 SetVisible을 true로 설정하고, HandleUserExitEvent에서 모든 사용자가 퇴장하면 SetVisible을 false로 설정하는 스크립트를 작성해줘 [answer] | 사용자가 입장할 때 해당 유저 Entity의 `SetVisible`을 `true`로 설정하고, 사용자가 퇴장할 때 현재 월드에 남아있는 유저가 없으면 대상 Entity의 `SetVisible`을 `false`로 설정하는 로직을 구현합니다. 참고 문서에 따라 `SetVisible`은 Entity 메서드로 존재하며, `_UserService.UserEntities`를 통해 현재 접속 중인 유저 Entity 목록을 조회할 수 있습니다. 대상 Entity는 Property로 설정합니다. ```lua Property: [Sync] Ent [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=4 complexity=3 verbosity=3 [judge_reason] | _UserService.UserEntities API가 문서에 명시되지 않아 지어낸 것으로 판단되며, SetVisible 메서드 사용은 정확합니다. [source_doc] | void SetEnable(boolean enable, boolean reset = false, boolean shouldSync = true)** 활성화 여부를 설정합니다. reset이 true일 경우 기존 활성화 여부와 설정할 값이 같더라도 활성화 이벤트를 처리합니다. shouldSync가 true일 경우, 활성화 여부를 동기화합니다. - **void SetVisible(boolean visible, boolean reset = false, boolean shouldSync = true)** 보임 여부를 설정합니다. re

[task] | two_turn [pass] | ✅ 통과 [title] | CustomFootholdComponent [question] | RigidbodyComponent를 가진 엔티티가 발판 위에서 움직임에 영향을 주는 속성으로 FootholdDrag와 FootholdForce의 차이가 무엇인가요? [answer] | `FootholdDrag`와 `FootholdForce`는 모두 RigidbodyComponent를 가진 엔티티가 발판 위에 있을 때 적용되는 속성이지만, 움직임에 미치는 방식이 다릅니다. **FootholdDrag (마찰력)** * **역할:** 엔티티의 속도를 감소시키는 마찰력입니다. * **동작 방식:** 값이 클수록 엔티티가 더 빠르게 감속합니다. 즉, 발판 위에서의 미끄러짐이나 관성 운동을 억제하는 역할을 합니다. **FootholdForce (힘)** * **역할:** 엔티티에 직접적으로 가해지는 힘입니다. [followup] | FootholdForce 값이 음수일 때 엔티티의 이동 방향은 어떻게 되나요? [followup_answer] | `FootholdForce` 값이 음수일 때, RigidbodyComponent를 가진 엔티티는 **왼쪽**으로 이동합니다. [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서에 명시된 FootholdDrag와 FootholdForce의 정의와 동작 방식을 정확하고 명확하게 설명하고 있다. [source_doc] | 사용자 정의 발판을 만드는 기능을 제공합니다. 발판의 모양과 속성을 설정할 수 있습니다 # Properties - **SyncList<List<Vector2>> edgeLists [Sync]** 발판을 나타냅니다. 하나의 발판은 여러 개의 연결점으로 구성됩니다. - **float FootholdDrag [Sync]** RigidbodyComponent가 포함된 엔티티가 발판 위에 있을 때 적용되는 마찰력입니다. 값이 클수록 빠르게 감속합니다. - **float FootholdForce [Sync]** Rigidbody

[task] | instruction_following [pass] | ✅ 통과 [title] | AvatarFaceActionSelectorComponent [question] | EnableInHierarchy가 false를 반환하는 조건을 코드 주석 1개만 사용해 설명하세요. [answer] | EnableInHierarchy가 false를 반환하는 조건은 컴포넌트의 Enable이 true여도 소유 엔티티의 Enable이 false인 경우입니다. ```lua -- EnableInHierarchy는 컴포넌트 Enable이 true라도 엔티티 Enable이 false이면 false를 반환합니다. ``` [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 문서의 EnableInHierarchy 정의와 일치하며 요구된 주석 1개만 포함하여 정확하고 간결하게 답변했습니다. [source_doc] | 아바타의 얼굴 Action을 선택해 적용시키는 컴포넌트입니다. # Properties - **MapleAvatarFaceActionState ActionState** 현재 Action 상태입니다. - **float BlinkInterval** 눈 깜빡임의 시간 간격으로, 초 단위를 사용합니다. - **ReadOnlyDictionary<MapleAvatarFaceActionState, ReadOnlyList<MapleAvatarActionStateElement>> StateActionDic [ReadOnly] [HideFr

[task] | instruction_following [pass] | ✅ 통과 [title] | AvatarFaceActionSelectorComponent [question] | inherited from Component로 명시된 메서드 2개의 시그니처를 표로 정리하세요. [answer] | `inherited from Component`로 명시된 메서드 2개의 시그니처는 다음과 같습니다. | 메서드 이름 | 반환 타입 | 파라미터 | | :--- | :--- | :--- | | `IsClient()` | `boolean` | 없음 | | `IsServer()` | `boolean` | 없음 | [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 참고 문서에 명시된 inherited from Component 메서드 2개의 시그니처를 정확하고 간결하게 표로 정리하여 질문에 완벽하게 부합합니다. [source_doc] | 아바타의 얼굴 Action을 선택해 적용시키는 컴포넌트입니다. # Properties - **MapleAvatarFaceActionState ActionState** 현재 Action 상태입니다. - **float BlinkInterval** 눈 깜빡임의 시간 간격으로, 초 단위를 사용합니다. - **ReadOnlyDictionary<MapleAvatarFaceActionState, ReadOnlyList<MapleAvatarActionStateElement>> StateActionDic [ReadOnly] [HideFr

[task] | instruction_following [pass] | ✅ 통과 [title] | AvatarFaceActionSelectorComponent [question] | AvatarFaceActionSelectorComponent의 자체 프로퍼티만 3줄 이내로 나열하세요. [answer] | AvatarFaceActionSelectorComponent의 자체 프로퍼티는 다음과 같습니다. * **MapleAvatarFaceActionState ActionState**: 현재 Action 상태입니다. * **float BlinkInterval**: 눈 깜빡임의 시간 간격으로, 초 단위를 사용합니다. * **ReadOnlyDictionary<MapleAvatarFaceActionState, ReadOnlyList<MapleAvatarActionStateElement>> StateActionDic**: 상태에 대한 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 자체 프로퍼티 3개를 정확하고 간결하게 나열하여 질문에 완벽하게 부합합니다. [source_doc] | 아바타의 얼굴 Action을 선택해 적용시키는 컴포넌트입니다. # Properties - **MapleAvatarFaceActionState ActionState** 현재 Action 상태입니다. - **float BlinkInterval** 눈 깜빡임의 시간 간격으로, 초 단위를 사용합니다. - **ReadOnlyDictionary<MapleAvatarFaceActionState, ReadOnlyList<MapleAvatarActionStateElement>> StateActionDic [ReadOnly] [HideFr

[task] | single_turn [pass] | ✅ 통과 [title] | ChatComponent [question] | ChatEvent 이벤트 핸들러에서 입력된 대화 내용을 서버로 전송하려면 어떤 메서드를 호출해야 하나요? [answer] | 제공된 참고 문서에는 `ChatEvent` 이벤트 핸들러에서 대화 내용을 서버로 전송하기 위해 호출해야 하는 특정 메서드가 명시되어 있지 않습니다. 문서에는 `ChatEvent`가 "대화가 입력되었을 때 발생하는 이벤트"임을 알려주었을 뿐, 이 이벤트에서 `event` 객체로부터 텍스트를 어떻게 추출하거나, 이를 서버로 전달하는 전용 메서드(예: `SendMessage`, `SendToServer` 등)가 존재하는지에 대한 정보는 없습니다. 따라서 주어진 문서 범위 내에서 서버로 대화 내용을 전송하는 방법을 확인할 수 없습니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서에 서버 전송 메서드가 명시되지 않았음을 정확히 지적하고, 존재하지 않는 API를 지어내지 않은 채 사실에 기반하여 답변했으므로 모든 항목에서 높은 점수를 받습니다. [source_doc] | 플레이어끼리 소통을 할 수 있는 채팅 기능을 지원해주는 컴포넌트입니다. # Properties - **float ChatEmotionDuration** 아바타 감정 표현 지속 시간을 설정합니다. - **boolean EnableVoiceChat [MakerOnly]** 보이스 채팅 버튼의 표시 및 사용 여부를 설정합니다. - **boolean Expand** 채팅창을 펼칠 수 있는 기능입니다. - **boolean HideWorldChatButton [MakerOnly]** 월드 채팅 버튼을 숨기는 기능입니다. -

[task] | code [pass] | ✅ 통과 [title] | ChatComponent [question] | HandleChatEvent 이벤트 핸들러에서 _UserService 로 로컬 플레이어 확인 후, 메시지에 EmotionalType 키워드가 포함되어 있으면 ChatComponent 의 UseChatEmotion 과 ChatEmotionDuration 을, ChatBalloonComponent 의 ShowDuration 을 감정 텍스트 길이로 설정하는 스크립트를 작성해줘 [answer] | `HandleChatEvent` 이벤트 핸들러에서 로컬 플레이어가 보낸 메시지인지 `_UserService`의 `LocalPlayer.OwnerId`와 비교하여 확인합니다. 메시지의 대소문자를 구분하지 않고 `EmotionalType`의 모든 값을 순회하며, 해당 키의 문자열이 메시지에 포함되는지 `string.find`로 검사합니다. 감정이 발견되면 `ChatComponent`의 `UseChatEmotion`을 `true`로 설정하고, 감정의 문자열 길이만큼 `ChatEmotionDuration`과 `ChatBalloonCompo [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 예제 코드를 정확히 재현하여 질문에 필요한 모든 요구사항을 충족했습니다. [source_doc] | `EmotionalType`의 텍스트 길이만큼 `ChatEmotionDuration`과 `ChatBalloonComponent`의 `ShowDuration`을 변경하는 예제입니다. `ChatEvent`를 통해 EmotionalType이 메시지에 포함되었는지 확인합니다. ```lua Event Handler: [self] HandleChatEvent (ChatEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: ChatComponen

[task] | single_turn [pass] | ✅ 통과 [title] | ChatComponent [question] | HideWorldChatButton을 true로 설정하면 채팅창 자체는 남아있지만 월드 채팅 버튼만 사라지나요, 아니면 모든 채팅 기능이 비활성화되나요? [answer] | 참고 문서에 `HideWorldChatButton` 프로퍼티의 설명은 "월드 채팅 버튼을 숨기는 기능입니다"라고만 명시되어 있습니다. 따라서 문서상으로는 **월드 채팅 버튼만 숨겨지는 것**으로만 확인됩니다. 채팅창 전체가 사라지거나 다른 채팅 기능(예: 개인 채팅, 감정 표현 등)이 비활성화되는지에 대한 정보는 문서에 존재하지 않습니다. 다른 채팅 관련 프로퍼티들(`Expand`, `UseChatBalloon`, `UseChatEmotion`, `EnableVoiceChat` 등)은 각각 독립된 기능을 제어하며, `HideWo [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 명시된 정보의 한계를 정확히 지적하고, 다른 프로퍼티와의 관계를 근거로 합리적으로 답변하여 질문에 충실하고 정확합니다. [source_doc] | 플레이어끼리 소통을 할 수 있는 채팅 기능을 지원해주는 컴포넌트입니다. # Properties - **float ChatEmotionDuration** 아바타 감정 표현 지속 시간을 설정합니다. - **boolean EnableVoiceChat [MakerOnly]** 보이스 채팅 버튼의 표시 및 사용 여부를 설정합니다. - **boolean Expand** 채팅창을 펼칠 수 있는 기능입니다. - **boolean HideWorldChatButton [MakerOnly]** 월드 채팅 버튼을 숨기는 기능입니다. -

[task] | two_turn [pass] | ✅ 통과 [title] | CanvasGroupComponent [question] | CanvasGroupComponent의 자식 UI 공통 제어 기능과 주요 속성에 대해 설명해 주세요. [answer] | `CanvasGroupComponent`는 한 엔티티에 연결된 자식 UI Entity들의 공통적인 동작과 외형을 한 곳에서 제어할 수 있게 해주는 컴포넌트입니다. 이 컴포넌트의 속성을 변경하면 해당 엔티티 아래에 있는 모든 자식 UI에 일괄적으로 적용됩니다. 주요 속성과 그 기능은 다음과 같습니다. 1. **BlocksRaycasts** (`boolean`) * 자식 UI가 화면 터치나 마우스 클릭과 같은 입력을 받을 수 있는지 여부를 제어합니다. * `true`로 설정하면 자식 UI가 입력을 받습니다. [followup] | BlocksRaycasts가 true일 때 마우스 입력 처리 우선순위가 어떻게 결정되며, Interactable이 false인 자식 UI가 터치 이벤트에 반응하는지 확인하는 코드 예제를 주세요. [followup_answer] | 참고 문서에 근거하여 질문에 답변드립니다. ### 1. BlocksRaycasts가 true일 때 마우스 입력 처리 우선순위 `CanvasGroupComponent`의 `BlocksRaycasts`가 `true`로 설정된 경우, 해당 컴포넌트가 부착된 엔티티의 **자식 UI들은 화면 터치 또는 마우스 클릭 입력을 받을 수 있습니다**. 문서에는 "뒤에 가려진 UI는 입력을 받지 못합니다"라고 명시되어 있습니다. 이는 Z-순서(깊이)나 계층 구조상 앞에 있는 UI가 입력을 먼저 받거나 차단(Raycast)하는 일반적인 UI 렌더 [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 속성 정의와 제약을 정확히 설명하고, 시스템 규칙에 부합하는 표준 mLua 코드 예제를 제공하여 질문에 충실히 답변했습니다. [source_doc] | 자식 UI Entity의 공통 속성을 한 곳에서 제어할 수 있는 기능을 제공합니다. # Properties - **boolean BlocksRaycasts** true로 설정할 경우 자식 UI는 화면 터치 또는 마우스 클릭 입력을 받을 수 있습니다. 뒤에 가려진 UI는 입력을 받지 못합니다. - **float GroupAlpha** 자식 UI의 투명도를 설정합니다. 0 이상, 1 이하의 값을 설정할 수 있습니다. - **boolean Interactable** 자식 UI의 상호작용 가능 여부를 설정합니다. false로

[task] | instruction_following [pass] | ❌ 탈락 [title] | CanvasGroupComponent [question] | GroupAlpha 속성에 유효하지 않은 값을 설정할 때 발생할 수 있는 문제를 표로 정리해서 설명하세요. [answer] | `CanvasGroupComponent`의 `GroupAlpha` 속성은 자식 UI의 투명도를 제어하며, 문서에 명시된 대로 **0 이상 1 이하**의 값만 유효합니다. 이 범위를 벗어난 값을 설정할 경우 발생할 수 있는 문제는 다음과 같습니다. | 설정된 값 범위 | 발생 가능한 문제 | | :--- | :--- | | **0 미만 (예: -0.5, -1)** | 문서에 정의된 유효 범위(0 이상)를 벗어납니다. UI가 완전히 투명해지거나(0) 더 이상 투명해질 수 없는 상태이므로, 음수 값은 의도하지 않은 렌더링 오류나 클라이 [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=3 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 명시되지 않은 구체적인 오류(렌더링 오류, 동기화 오류 등)를 추측하여 서술했으나, 유효 범위(0~1)와 타입(float) 등 핵심 사실은 문서와 일치하며 질문에 대한 구조적 답변은 적절함. [source_doc] | 자식 UI Entity의 공통 속성을 한 곳에서 제어할 수 있는 기능을 제공합니다. # Properties - **boolean BlocksRaycasts** true로 설정할 경우 자식 UI는 화면 터치 또는 마우스 클릭 입력을 받을 수 있습니다. 뒤에 가려진 UI는 입력을 받지 못합니다. - **float GroupAlpha** 자식 UI의 투명도를 설정합니다. 0 이상, 1 이하의 값을 설정할 수 있습니다. - **boolean Interactable** 자식 UI의 상호작용 가능 여부를 설정합니다. false로

[task] | single_turn [pass] | ✅ 통과 [title] | ChatComponent [question] | 채팅 메세지가 말풍선으로 표시되지 않을 때 UseChatBalloon만 true로 설정하면 충분한가요, 아니면 다른 조건도 필요한가요? [answer] | 제공된 문서에는 `UseChatBalloon` 프로퍼티가 "플레이어의 채팅 메세지를 말풍선으로 표현할 수 있는 기능"이라는 정의만 있을 뿐, 이 기능이 정상 동작하기 위해 반드시 만족해야 하는 추가 조건(예: 특정 UI 설정, 다른 프로퍼티의 상호작용, 서버/클라이언트 구분 등)에 대한 설명은 없습니다. 따라서 문서 기준으로만 판단할 때, `UseChatBalloon`을 `true`로 설정하는 것 외에 말풍선 표시에 필요한 명시적인 추가 조건은 문서에 기재되어 있지 않습니다. 다만, 컴포넌트가 비활성화 상태(`Enable = f [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 없는 추가 조건을 지어내지 않고, 문서에 명시된 Enable/EnableInHierarchy 상속 프로퍼티를 적절히 언급하여 정확하고 간결하게 답변했습니다. [source_doc] | 플레이어끼리 소통을 할 수 있는 채팅 기능을 지원해주는 컴포넌트입니다. # Properties - **float ChatEmotionDuration** 아바타 감정 표현 지속 시간을 설정합니다. - **boolean EnableVoiceChat [MakerOnly]** 보이스 채팅 버튼의 표시 및 사용 여부를 설정합니다. - **boolean Expand** 채팅창을 펼칠 수 있는 기능입니다. - **boolean HideWorldChatButton [MakerOnly]** 월드 채팅 버튼을 숨기는 기능입니다. -

[task] | code [pass] | ✅ 통과 [title] | SoundService [question] | _SoundService의 PlayLoopSound를 사용해 OnBeginPlay에서 1초마다 5회 음원을 재생하고, _SpawnService로 생성한 버튼의 ButtonClickEvent 핸들러에서 _SoundService의 StopSound를 호출해 재생 중이던 음원을 즉시 중단하는 스크립트를 작성해줘. [answer] | 요청하신 기능은 `_SoundService:PlayLoopSound`와 `_SoundService:StopSound`를 사용하여 5초 동안 1초 간격으로 음원을 재생하고, 생성된 버튼을 통해 재생을 중단하는 로직으로 구현할 수 있습니다. 참고 문서에 제시된 예제 코드를 기반으로 작성한 스크립트는 다음과 같습니다. ```lua Method: [client only] void OnBeginPlay() { local defaultUIGroup = _EntityService:GetEntityByPath("/ui/DefaultGroup [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 예제 코드를 정확히 재구성하여 질문에 요구된 기능(5초간 1초 간격 5회 재생, 버튼 클릭 시 정지)을 충실히 구현했으며, API 사용법과 문법이 모두 정확합니다. [source_doc] | `SoundService`를 통해 재생한 음원를 일괄 정지하는 예제입니다. 게임 시작 후 5초에 걸쳐 5번 불꽃놀이 음원를 재생하고, "STOP FIREWORK" 버튼을 누르면 불꽃놀이 사운드가 일괄 정지됩니다. ```lua Method: [client only] void OnBeginPlay() { local defaultUIGroup = _EntityService:GetEntityByPath("/ui/DefaultGroup") if defaultUIGroup == nil then return end -- 5초

[task] | instruction_following [pass] | ✅ 통과 [title] | ChatComponent [question] | `string.compare(localId, UserId) == false` 조건이 `return`을 유발하는 경우와 그렇지 않은 경우를 표로 구분해서 정리하세요. [answer] | 제공된 참고 문서의 코드에 따르면, `string.compare(localId, UserId) == false` 조건이 참(True)이 되어 `return`이 실행되는 경우와 그렇지 않은 경우는 다음과 같습니다. | 구분 | 조건 (`string.compare(localId, UserId) == false`) | 결과 | 설명 | | :--- | :--- | :--- | :--- | | **`return` 발생** | `true` (참) | 함수 종료 | `localId`와 `UserId`가 **다르다**는 의미입니다. 즉, 채팅 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서 코드의 논리 흐름을 정확히 해석하여 표로 명확하게 정리했고, string.compare의 동작 방식도 코드 맥락에 맞게 올바르게 추론하였습니다. [source_doc] | `EmotionalType`의 텍스트 길이만큼 `ChatEmotionDuration`과 `ChatBalloonComponent`의 `ShowDuration`을 변경하는 예제입니다. `ChatEvent`를 통해 EmotionalType이 메시지에 포함되었는지 확인합니다. ```lua Event Handler: [self] HandleChatEvent (ChatEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: ChatComponen

[task] | instruction_following [pass] | ✅ 통과 [title] | AIChaseComponent [question] | AIChaseComponent의 DetectionRange 프로퍼티가 추적을 중단하고 다시 시작하는 기준이 되는 원리를 3문장 이내로 설명하세요. [answer] | DetectionRange는 AIChaseComponent가 추적을 유지하거나 중단하는 경계 거리로 기능합니다. 추적 대상의 거리가 이 값보다 멀어지면 AI는 즉시 추적을 중단합니다. 반대로 대상과의 거리가 이 값 이내로 가까워지면 AI는 다시 추적을 시작합니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 설명과 정확히 일치하며, 3문장 이내로 핵심 원리를 명확하게 설명했습니다. [source_doc] | 플레이어나 다른 엔티티를 추적하는 AI입니다. StateComponent가 없다면 자동으로 추가됩니다. # Properties - **float DetectionRange** 추적 감지 거리입니다. 대상의 거리가 이보다 멀어지면 추적을 중단하고, 가까워지면 다시 추적을 시작합니다. - **boolean IsChaseNearPlayer** 값이 true인 경우 DetectionRange 프로퍼티 값 내에서 가장 가까운 플레이어를 자동으로 추적합니다. TargetEntityRef 프로퍼티 또는 SetTarget(Entity)

[task] | code [pass] | ❌ 탈락 [title] | ChatComponent [question] | ChatComponent의 UseChatEmotion을 true로 설정하고 ChatEmotionDuration을 3초로 지정하는 스크립트를 작성해줘 [answer] | ChatComponent의 `UseChatEmotion` 프로퍼티는 `boolean` 타입이며, `ChatEmotionDuration`은 `float` 타입입니다. 두 프로퍼티 모두 `[None]` 속성(기본값, 동기화 안 함)으로 선언되며, 스크립트에서 직접 값을 설정할 수 있습니다. 아래 스크립트는 `OnBeginPlay` 생명주기 메서드에서 해당 값을 초기화합니다. ```lua Property: [None] boolean UseChatEmotion = false [None] number ChatEmotionDuration [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=4 complexity=2 verbosity=2 [judge_reason] | ChatComponent의 프로퍼티를 직접 수정하는 것이 아니라 스크립트 자체의 프로퍼티로 중복 선언하는 잘못된 패턴을 제시하여 실제 채팅 기능을 활성화하지 못함. [source_doc] | 플레이어끼리 소통을 할 수 있는 채팅 기능을 지원해주는 컴포넌트입니다. # Properties - **float ChatEmotionDuration** 아바타 감정 표현 지속 시간을 설정합니다. - **boolean EnableVoiceChat [MakerOnly]** 보이스 채팅 버튼의 표시 및 사용 여부를 설정합니다. - **boolean Expand** 채팅창을 펼칠 수 있는 기능입니다. - **boolean HideWorldChatButton [MakerOnly]** 월드 채팅 버튼을 숨기는 기능입니다. -

[task] | two_turn [pass] | ✅ 통과 [title] | AvatarBodyActionSelectorComponent [question] | AvatarBodyActionSelectorComponent 의 Enable 속성과 EnableInHierarchy 속성의 차이점 및 계층 구조에 따른 동작 방식을 알려주세요. [answer] | `AvatarBodyActionSelectorComponent`에서 `Enable`과 `EnableInHierarchy` 속성은 컴포넌트의 활성화 상태를 확인하는 방식이 다릅니다. **1. `Enable` 속성** * **종류:** `boolean` 타입으로 `[Sync]` 속성이 적용되어 있습니다. * **기능:** 해당 컴포넌트 자체의 활성화 여부를 직접적으로 확인하거나 변경합니다. * **동작:** 이 값이 `true`이면 컴포넌트가 활성화 상태이며, `false`이면 비활성화 상태입니다. **2. `Enable [followup] | 특정 엔티티의 Enable 이 false 인 경우, 하위 아바타의 AvatarBodyActionSelectorComponent 가 EnableInHierarchy 로 반환하는 값과 이 값에 따른 동작 제한 사항을 코드로 확인해 주세요. [followup_answer] | 참고 문서에 따르면, 특정 엔티티의 `Enable`이 `false`인 경우 해당 엔티티에 부착된 `AvatarBodyActionSelectorComponent`의 `EnableInHierarchy` 속성은 **`false`**를 반환합니다. 이는 `EnableInHierarchy`가 "컴포넌트 자체의 `Enable`이 `true`일지라도, 소유 엔티티의 `Enable`이 `false`라면 `false`를 반환한다"고 명시되어 있기 때문입니다. 이 값(`false`)을 확인하여 동작을 제한하는 mLua 코드 예제는 다음과 같습니다 [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 Enable 및 EnableInHierarchy 속성 정의와 계층 구조 동작 방식을 정확하고 명확하게 설명했습니다. [source_doc] | 아바타의 몸통 Action을 선택해 적용시키는 컴포넌트입니다. # Properties - **MapleAvatarBodyActionState ActionState** 현재 Action 상태입니다. - **ReadOnlyDictionary<MapleAvatarBodyActionState, ReadOnlyList<MapleAvatarActionStateElement>> StateActionDic [ReadOnly] [HideFromInspector]** 상태에 대한 정보값입니다. 추후 개선될 예정입니다. ##### inhe

[task] | two_turn [pass] | ✅ 통과 [title] | CustomFootholdComponent [question] | CustomFootholdComponent에서 발판의 모양을 변경하려면 어떤 조건과 코드 패턴을 지켜야 하나요? [answer] | `CustomFootholdComponent`에서 발판 모양을 변경하려면 두 가지 핵심 조건과 특정 코드 패턴을 준수해야 합니다. **1. 필수 조건** * **`IsDynamicFoothold` 활성화**: 엔티티에 첨부된 `CustomFootholdComponent`의 `IsDynamicFoothold` 프로퍼티가 `true`여야만 플레이 중 발판의 위치나 모양 변경이 적용됩니다. 이 값이 `false`라면 런타임에 발판을 수정할 수 없습니다. * **성능 고려**: 발판의 위치나 모양을 자주 변경하면 월드 성능 저하의 [followup] | IsDynamicFoothold가 false일 때 edgeLists를 수정하면 어떻게 되나요? [followup_answer] | `IsDynamicFoothold`가 `false`인 경우, `edgeLists`를 수정하더라도 **변경 사항이 발판에 적용되지 않습니다.** 참고 문서의 유의사항에 명시된 바와 같이, `IsDynamicFoothold`가 `true`인 경우에만 플레이 중 발판의 이동이나 모양 변경이 적용됩니다. 따라서 `false` 상태에서는 런타임에 `edgeLists`를 덮어쓰거나 수정하는 코드를 실행해도 발판의 실제 모양은 초기 설정값 그대로 유지되며, 물리 엔진이나 렌더링에 새로운 발판 데이터가 반영되지 않습니다. [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 조건(IsDynamicFoothold true, 새 List 덮어쓰기)과 예제 코드를 정확히 요약하고 재구성하여 질문에 완벽히 답했습니다. [source_doc] | 사용자 정의 발판을 만드는 기능을 제공합니다. 발판의 모양과 속성을 설정할 수 있습니다 # Properties - **SyncList<List<Vector2>> edgeLists [Sync]** 발판을 나타냅니다. 하나의 발판은 여러 개의 연결점으로 구성됩니다. - **float FootholdDrag [Sync]** RigidbodyComponent가 포함된 엔티티가 발판 위에 있을 때 적용되는 마찰력입니다. 값이 클수록 빠르게 감속합니다. - **float FootholdForce [Sync]** Rigidbody

[task] | code [pass] | ❌ 탈락 [title] | TeleportService [question] | 사용하는 컴포넌트/서비스: EntityService, TeleportService [answer] | 제시된 참고 문서에는 `TeleportService` API만 포함되어 있으며, `EntityService`에 대한 API 정의나 사용 예시는 포함되어 있지 않습니다. 따라서 `EntityService`를 사용하는 코드를 작성할 수 없습니다. 참고 문서에 근거하여 `TeleportService`의 사용법과 예제만 설명드립니다. ### TeleportService 주요 API 1. **`TeleportToMapPosition(Entity targetEntity, Vector3 destinationPosition, string [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=1 coherence=3 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 없는 API(예: TeleportToEntity, GetEntitiesByTag)를 지어내고, TeleportToMapPosition의 실행 공간이 Server임에도 [client only] 예제를 제시하는 등 문서와 상충되는 오류가 많아 정확도가 매우 낮음. [source_doc] | tEntity, Vector3 destinationPosition, string destinationMapName = "") [Server]** 목적지 위치로 Entity를 텔레포트 시킵니다. - **void TeleportToMapPosition(Entity targetEntity, Vector3 destinationPosition, string destinationMapName = "", Entity messageOwnerEntity = nil) [Deprecated] [Server]** 더는 사용하지 않는 함수입니다.

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