← 목록

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

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

[task] | single_turn [pass] | ✅ 통과 [title] | AvatarStateAnimationComponent [question] | AvatarStateAnimationComponent의 StateStringToAnimationKey 메서드를 오버라이드하지 않으면 상태 이름과 애니메이션 키의 매핑은 어떻게 이루어지나요? [answer] | 참고 문서에 따르면, `StateStringToAnimationKey` 메서드는 `StateAnimationComponent`에서 상속된 `[ScriptOverridable]` 메서드로, 상태에 대응하는 애니메이션의 이름을 반환하는 역할을 합니다. 하지만 **이 메서드를 오버라이드하지 않았을 때의 기본 동작(기본 매핑 로직)에 대한 구체적인 설명은 제공된 문서에 포함되어 있지 않습니다.** 문서에는 해당 메서드가 "상태에 대응하는 애니메이션의 이름을 반환한다"는 기능 설명과 `stateName` 매개변수 정보만 기재되어 있을 뿐 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 기본 매핑 로직을 지어내지 않고, 문서 한계점을 명확히 지적하며 오버라이드 필요성을 정확히 안내했습니다. [source_doc] | - **void ReceiveStateChangeEvent(IEventSender sender, StateChangeEvent stateEvent) [ScriptOverridable]** StateChangeEvent가 발생했을 때 호출되는 메소드입니다. 변경된 상태에 대응하는 애니메이션이 메이플스토리 월드에서 제공하는 Native 애니메이션일 경우 BodyActionStateChangeEvent를 발생시킵니다. 애니메이션이 크리에이터가 제작한 Custom 애니메이션일 경우 BodyActionTypeChangeEvnet를 발생시

[task] | instruction_following [pass] | ✅ 통과 [title] | RectTileMapComponent [question] | RectTileMapComponent에서 TileCount 속성을 읽기 전용으로 사용하는 이유를 코드만 출력하고 설명은 주석으로 작성하세요. [answer] | ```lua Property: [None] number TileCountBeforeSpawn = 0 [None] number TileCountAfterSpawn = 0 Method: [server only] void OnBeginPlay() { -- TileCount는 [ReadOnly] 속성이므로 스크립트에서 직접 값 대입이 불가능합니다. -- 이는 타일맵 내부 구조에서 관리되는 값이므로 외부 수정을 방지하기 위함입니다. -- 대신 현재 배치된 타일 수를 확인하기 위해 읽기 전용으로 접근합니다. se [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | RectTileMapComponent의 TileCount가 [ReadOnly]임을 올바르게 파악하여 읽기 전용 접근 예시를 제공했고, 문서에 없는 API를 지어내지 않아 정확성이 높습니다. [source_doc] | 사각형 타일맵 기능을 제공합니다. # Properties - **Vector2 GridSize [Sync]** 격자의 크기입니다. - **boolean IgnoreMapLayerCheck** SortingLayer에 Map Layer 이름을 지정했을 때 자동 치환을 수행하지 않습니다. - **boolean IsOddGridPosition** 타일맵을 그리드의 기준점과 어긋나게 배치합니다. - **int32 OrderInLayer [Sync]** 같은 Layer 내의 우선순위를 결정합니다. 수가 클수록 앞에 보입니다

[task] | code [pass] | ✅ 통과 [title] | AvatarStateAnimationComponent [question] | AvatarStateAnimationComponent의 SetActionSheet 메서드를 호출하여 "idle" 상태에 "Animation_Idle" 애니메이션을 매핑하는 스크립트를 작성해줘 [answer] | AvatarStateAnimationComponent의 `SetActionSheet` 메서드를 사용하여 "idle" 상태에 "Animation_Idle" 애니메이션을 매핑하는 스크립트는 다음과 같습니다. ```lua Method: [client only] void MapIdleAnimation() { local avatarStateAnimation = self.Entity.AvatarStateAnimationComponent avatarStateAnimation:SetActionSheet("idle", "Animat [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | SetActionSheet 메서드 사용법은 문서와 일치하며, OnBeginPlay에서 초기화하는 구조는 mLua 규칙에 부합하지만, 애니메이션 매핑이 반드시 클라이언트에서만 이루어져야 하는지에 대한 문서적 근거가 부족해 [client only] 지정이 다소 임의적입니다. [source_doc] | - **void ReceiveStateChangeEvent(IEventSender sender, StateChangeEvent stateEvent) [ScriptOverridable]** StateChangeEvent가 발생했을 때 호출되는 메소드입니다. 변경된 상태에 대응하는 애니메이션이 메이플스토리 월드에서 제공하는 Native 애니메이션일 경우 BodyActionStateChangeEvent를 발생시킵니다. 애니메이션이 크리에이터가 제작한 Custom 애니메이션일 경우 BodyActionTypeChangeEvnet를 발생시

[task] | single_turn [pass] | ❌ 탈락 [title] | EntityWorldChangedEvent [question] | MODEntity API를 통해 월드를 변경할 때 Server와 Client에서 동시에 이벤트가 발생하는데, 이 이벤트 핸들러에 [server only] 속성을 붙이면 어떤 문제가 생길 수 있나요? [answer] | `EntityWorldChangedEvent`는 `MODEntity` API가 호출될 때 **Server와 Client 양쪽 공간(Space)에서 동시에** 발생하도록 정의되어 있습니다. 이벤트 핸들러에 `[server only]` 속성을 붙이면 다음과 같은 문제가 발생할 수 있습니다. 1. **클라이언트 측 로직 실행 불가**: `[server only]` 속성이 적용되면 해당 이벤트 핸들러는 서버에서만 실행됩니다. 따라서 클라이언트 측에서 월드 변경에 따라 처리해야 할 로직(예: 클라이언트 전용 UI 업데이트, 클라 [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=4 complexity=3 verbosity=2 [judge_reason] | 이벤트 발생 공간과 속성 의미 설명은 정확하나, 문서에 없는 '[multicast]' 속성을 지어내어 정답성에서 감점됩니다. [source_doc] | 엔티티가 속한 월드가 변경될 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * MODEntity <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **Entity NewWorld** 엔티티가 새로 속한 월드 엔티티입니다. - **Entity

[task] | single_turn [pass] | ✅ 통과 [title] | AvatarStateAnimationComponent [question] | StateToAvatarBodyActionSheet에 상태 이름을 키로 등록했는데 애니메이션이 재생되지 않을 때, ActionSheet와 StateToAvatarBodyActionSheet 중 어떤 속성을 확인해야 하는가요? [answer] | `IsLegacy` 프로퍼티의 값을 확인해야 합니다. `IsLegacy`가 `true`인 경우에만 `ActionSheet` 속성이 사용되며, `false`인 경우에만 `StateToAvatarBodyActionSheet` 속성이 사용됩니다. 따라서 `StateToAvatarBodyActionSheet`에 등록해두었는데 애니메이션이 재생되지 않는다면, `IsLegacy`가 `true`로 설정되어 `ActionSheet`만 참조하고 있는 것이 원인일 수 있습니다. `IsLegacy`가 `false`인지 확인하고, `false`라면 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 IsLegacy, ActionSheet, StateToAvatarBodyActionSheet 간 의존 관계를 정확히 설명하여 문제를 해결하는 데 실질적 도움을 줍니다. [source_doc] | 아바타의 상태 변화에 따라 재생될 애니메이션을 지정합니다. # Properties - **SyncDictionary<string, string> ActionSheet [Deprecated] [Sync]** 애니메이션의 이름과 AnimationClip RUID가 매핑된 테이블입니다. IsLegacy가 true일 때 사용됩니다. - **boolean IsLegacy [ReadOnly]** Legacy 시스템을 지원할지를 설정합니다. 이전 시스템은 더 이상 지원하지 않으며, 추후 삭제 예정입니다. - **SyncDictiona

[task] | single_turn [pass] | ✅ 통과 [title] | EntityRemoveChildrenEvent [question] | 이벤트 핸들러 내부에서 self.Entity.TransformComponent 를 통해 접근할 수 있는 값과 EntityRemoveChildrenEvent 의 Entity 프로퍼티를 통해 접근할 수 있는 값의 차이는 무엇인가요? [answer] | 제공된 참고 문서를 바탕으로 `self.Entity.TransformComponent` 와 `EntityRemoveChildrenEvent` 의 `Entity` 프로퍼티의 차이를 설명합니다. **1. `self.Entity.TransformComponent`** * **의미:** 스크립트가 첨부된 **현재 엔티티(self)** 의 변형(위치, 회전, 크기 등) 정보를 관리하는 컴포넌트입니다. * **접근 방식:** `self.Entity`를 통해 현재 스크립트가 부착된 엔티티 객체를 가져온 후, `TransformCompo [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서와 mLua 규칙에 기반하여 self.Entity 와 event.Entity 의 차이점을 명확히 설명했으나, 질문이 '접근 가능한 값의 차이'를 물었음에도 TransformComponent 의 구체적인 프로퍼티(위치 등)와 Entity 프로퍼티의 의미 차이로 답해 질문 의도와 약간 어긋날 수 있음. [source_doc] | 엔티티의 자식 엔티티가 제거된 이후 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * MODEntity <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **Entity RemovedChildren** 제거된 자식 엔티티입니다. ##### i

[task] | code [pass] | ✅ 통과 [title] | EntityWorldChangedEvent [question] | EntityWorldChangedEvent 가 발생할 때 OldWorld 와 NewWorld 가 모두 존재하는지 확인하고, 존재한다면 두 엔티티를 table 로 저장하여 self 에 보관하는 스크립트를 작성해줘 [answer] | `EntityWorldChangedEvent`는 엔티티가 속한 월드가 변경될 때 발생하는 이벤트이며, `OldWorld`와 `NewWorld` 프로퍼티를 통해 이전 월드와 새로운 월드 엔티티에 접근할 수 있습니다. 요청하신 조건(OldWorld와 NewWorld가 모두 존재하는지 확인)을 만족할 때 두 엔티티를 table로 묶어 `self`에 보관하는 스크립트는 다음과 같습니다. ```lua Property: [None] table worldChangeData = {} Method: [server] void OnBeginPla [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 EntityWorldChangedEvent 프로퍼티와 생성자 시그니처를 정확히 반영하여 nil 체크 및 table 저장 로직을 구현했으며, mLua 스크립트 규칙(Property/Method/Event Handler 블록, self 접근, log 사용 등)을 준수하여 일관되고 명확한 답변을 제시했습니다. [source_doc] | 엔티티가 속한 월드가 변경될 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * MODEntity <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **Entity NewWorld** 엔티티가 새로 속한 월드 엔티티입니다. - **Entity

[task] | single_turn [pass] | ✅ 통과 [title] | KinematicbodyComponent [question] | KinematicbodyComponent의 SetPosition과 SetWorldPosition은 좌표 기준이 어떻게 다른가요? [answer] | `KinematicbodyComponent`의 `SetPosition`과 `SetWorldPosition`은 좌표 기준에 따라 엔티티의 위치를 설정하는 방식이 다릅니다. * **`SetPosition(Vector2 position)`**: **로컬 좌표** 기준으로 엔티티의 위치를 설정합니다. * **`SetWorldPosition(Vector2 position)`**: **월드 좌표** 기준으로 엔티티의 위치를 설정합니다. 즉, `SetPosition`은 엔티티가 속한 로컬 좌표계에서의 상대적인 위치를 지정하는 반면, [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 참고 문서의 SetPosition과 SetWorldPosition 정의와 정확히 일치하며, 질문에 대한 핵심 차이점을 명확하고 간결하게 설명했습니다. [source_doc] | - **Vector2 GetGroundPosition()** 로컬 좌표 기준으로 바닥 위치를 반환합니다. - **Vector2 GetWorldGroundPosition()** 월드 좌표 기준으로 바닥 위치를 반환합니다. - **boolean IsOnGround()** 현재 지면에 닿아 있는 상태인지 확인합니다. 점프 중일 때 false를 반환합니다. - **void OnEnterRectTile(RectTileEnterEvent enterEvent) [ScriptOverridable]** RectTileEnterEven

[task] | instruction_following [pass] | ✅ 통과 [title] | RectTileMapComponent [question] | RectTileMapComponent의 BoxFill 메서드 오버로드 두 가지의 차이점을 3문장 이내로 설명하세요. [answer] | 첫 번째 오버로드는 타일의 인덱스 번호인 `int32 tileIndex`를 매개변수로 받아 타일을 배치합니다. 두 번째 오버로드는 타일의 이름인 `string tileName`을 매개변수로 받아 타일을 배치합니다. 두 메서드 모두 `from`부터 `to`까지의 사각형 영역에 타일을 채우는 동일한 기능을 수행합니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 참고 문서에 명시된 두 오버로드의 매개변수 타입(int32 vs string)과 기능적 동일성을 정확하고 간결하게 설명했습니다. [source_doc] | - **void BoxFill(int32 tileIndex, Vector2Int from, Vector2Int to)** from부터 to까지의 사각형 영역에 타일을 배치합니다. tileIndex는 타일의 인덱스 번호입니다. - **void BoxFill(string tileName, Vector2Int from, Vector2Int to)** from부터 to까지의 사각형 영역에 타일을 배치합니다. tileName은 타일의 Name 프로퍼티입니다. - **void BoxRemove(Vector2Int from, Vector

[task] | instruction_following [pass] | ✅ 통과 [title] | RectTileMapComponent [question] | RectTileMapComponent의 SortingLayer와 OrderInLayer 속성의 차이를 표로 정리해서 작성하세요. [answer] | RectTileMapComponent의 `SortingLayer`와 `OrderInLayer` 속성은 겹친 Entity의 표시 우선순위를 결정하는 방식이 다릅니다. `SortingLayer`는 레이어 단위의 기본 우선순위를 정하고, `OrderInLayer`는 같은 레이어 내부에서의 세부 순서를 정합니다. 두 속성의 차이는 다음과 같습니다. | 구분 | SortingLayer | OrderInLayer | | :--- | :--- | :--- | | **속성 타입** | `string` | `int32` | | **수정 가능 여 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 속성 정의(타입, 읽기 전용/동기화, 역할)를 정확히 비교하여 질문에 대한 명확한 표 형식의 답변을 제공했습니다. [source_doc] | 사각형 타일맵 기능을 제공합니다. # Properties - **Vector2 GridSize [Sync]** 격자의 크기입니다. - **boolean IgnoreMapLayerCheck** SortingLayer에 Map Layer 이름을 지정했을 때 자동 치환을 수행하지 않습니다. - **boolean IsOddGridPosition** 타일맵을 그리드의 기준점과 어긋나게 배치합니다. - **int32 OrderInLayer [Sync]** 같은 Layer 내의 우선순위를 결정합니다. 수가 클수록 앞에 보입니다

[task] | code [pass] | ✅ 통과 [title] | EntityPostModelSetEvent [question] | EntityPostModelSetEvent 에서 전달받은 Entity 가 self.Entity 와 동일할 때만 실행되도록 조건을 설정하고 Model 정보에 따라 self:UpdateVisuals() 메서드를 호출하는 스크립트를 작성해줘 [answer] | `EntityPostModelSetEvent`는 엔티티의 Model이 설정된 후에 발생하는 이벤트입니다. 이 이벤트는 `event.Entity`를 통해 대상 엔티티를, `event.Model`을 통해 설정된 Model 정보를 전달받습니다. 질문하신 대로 `event.Entity`가 `self.Entity`와 동일할 때만 동작하도록 조건을 걸고, Model 정보에 따라 `self:UpdateVisuals()`를 호출하는 스크립트는 다음과 같습니다. ```lua Property: [None] number Speed = 10 Met [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서와 시스템 규칙에 부합하는 정확한 코드와 설명을 제공하여 질문에 완벽히 대응함 [source_doc] | 엔티티의 대상 Model 설정 후 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * MODEntity <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **Model Model** 설정된 Model입니다. ##### inherited from

[task] | single_turn [pass] | ✅ 통과 [title] | AvatarStateAnimationComponent [question] | EnableInHierarchy가 false를 반환하는 경우의 원인이 무엇이며, 컴포넌트 자체의 Enable 값이 true인데도 왜 이런 현상이 발생하나요? [answer] | `EnableInHierarchy`가 `false`를 반환하는 주된 원인은 **이 컴포넌트가 소속된 엔티티(Entity)의 `Enable` 값이 `false`이기 때문**입니다. `EnableInHierarchy`는 현재 컴포넌트 자체의 `Enable` 상태만 확인하는 것이 아니라, 해당 컴포넌트가 포함된 엔티티의 활성화 상태까지 함께 반영하는 읽기 전용 속성입니다. 따라서 컴포넌트 자체의 `Enable` 값이 `true`로 설정되어 있더라도, 그 컴포넌트를 소유하고 있는 엔티티가 비활성화(`Enable = false`)된 상태라 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 EnableInHierarchy의 정의(Enable이 true여도 엔티티 Enable이 false면 false 반환)를 정확히 인용하여 질문의 핵심을 명확하게 설명했습니다. [source_doc] | 아바타의 상태 변화에 따라 재생될 애니메이션을 지정합니다. # Properties - **SyncDictionary<string, string> ActionSheet [Deprecated] [Sync]** 애니메이션의 이름과 AnimationClip RUID가 매핑된 테이블입니다. IsLegacy가 true일 때 사용됩니다. - **boolean IsLegacy [ReadOnly]** Legacy 시스템을 지원할지를 설정합니다. 이전 시스템은 더 이상 지원하지 않으며, 추후 삭제 예정입니다. - **SyncDictiona

[task] | instruction_following [pass] | ✅ 통과 [title] | RectTileMapComponent [question] | ToCellPosition과 ToWorldPosition 메서드의 파라미터 타입과 반환 타입을 표로 정리해서 제시하세요. [answer] | `RectTileMapComponent`의 좌표 변환 메서드인 `ToCellPosition`과 `ToWorldPosition`의 파라미터 및 반환 타입은 다음과 같습니다. | 메서드 | 파라미터 타입 | 반환 타입 | | :--- | :--- | :--- | | `ToCellPosition` | `float worldPositionX`, `float worldPositionY` | `Vector2Int` | | `ToCellPosition` | `Vector3 worldPosition` | `Vector2Int` | | `ToWo [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 메서드의 파라미터와 반환 타입을 정확하고 간결하게 표로 정리하여 질문에 완벽하게 부응했습니다. [source_doc] | - **void BoxFill(int32 tileIndex, Vector2Int from, Vector2Int to)** from부터 to까지의 사각형 영역에 타일을 배치합니다. tileIndex는 타일의 인덱스 번호입니다. - **void BoxFill(string tileName, Vector2Int from, Vector2Int to)** from부터 to까지의 사각형 영역에 타일을 배치합니다. tileName은 타일의 Name 프로퍼티입니다. - **void BoxRemove(Vector2Int from, Vector

[task] | single_turn [pass] | ✅ 통과 [title] | AvatarStateAnimationComponent [question] | inherited from StateAnimationComponent의 ActionSheet와 AvatarStateAnimationComponent 자체의 ActionSheet 속성이 동시에 존재할 때, IsLegacy 값에 따라 어떤 속성이 우선 적용되나요? [answer] | `AvatarStateAnimationComponent`에서 `IsLegacy` 값에 따라 우선 적용되는 속성은 다음과 같습니다. 1. **`IsLegacy`가 `true`인 경우**: * `AvatarStateAnimationComponent` 자체에 정의된 **`ActionSheet`** 속성이 사용됩니다. * 이 속성은 애니메이션 이름과 AnimationClip RUID가 매핑된 테이블로, Legacy 시스템을 위한 것입니다. 2. **`IsLegacy`가 `false`인 경우**: * [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서의 IsLegacy 조건부 설명을 정확히 반영하여 상속 속성과 자체 속성의 우선순위를 명확히 구분하여 설명했습니다. [source_doc] | 아바타의 상태 변화에 따라 재생될 애니메이션을 지정합니다. # Properties - **SyncDictionary<string, string> ActionSheet [Deprecated] [Sync]** 애니메이션의 이름과 AnimationClip RUID가 매핑된 테이블입니다. IsLegacy가 true일 때 사용됩니다. - **boolean IsLegacy [ReadOnly]** Legacy 시스템을 지원할지를 설정합니다. 이전 시스템은 더 이상 지원하지 않으며, 추후 삭제 예정입니다. - **SyncDictiona

[task] | single_turn [pass] | ✅ 통과 [title] | KinematicbodyComponent [question] | OnUpdate에서 IsOnGround()가 false를 반환하는 동안 EnableTileCollision을 어떻게 설정해야 점프 중 타일 충돌을 방지할 수 있나요? [answer] | 점프 중 `IsOnGround()`가 `false`를 반환할 때, `EnableTileCollision` 프로퍼티에 `false`를 대입하면 타일 충돌을 비활성화하여 점프 중 타일과 충돌하는 것을 방지할 수 있습니다. 반대로 지면에 닿아 있을 때(`IsOnGround()`가 `true`)에는 `true`를 설정하여 충돌을 다시 활성화해야 합니다. 참고 문서에 포함된 예제 코드를 그대로 적용하면 다음과 같습니다. ```lua Method: [client only] void OnUpdate () { if _UserService.L [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 예제 코드를 정확히 인용하여 질문의 의도에 부합하는 올바른 해결책을 제시했습니다. [source_doc] | - **Vector2 GetGroundPosition()** 로컬 좌표 기준으로 바닥 위치를 반환합니다. - **Vector2 GetWorldGroundPosition()** 월드 좌표 기준으로 바닥 위치를 반환합니다. - **boolean IsOnGround()** 현재 지면에 닿아 있는 상태인지 확인합니다. 점프 중일 때 false를 반환합니다. - **void OnEnterRectTile(RectTileEnterEvent enterEvent) [ScriptOverridable]** RectTileEnterEven

[task] | single_turn [pass] | ✅ 통과 [title] | AvatarStateAnimationComponent [question] | AvatarStateAnimationComponent에서 IsLegacy가 true일 때와 false일 때 각각 어떤 속성이 애니메이션 재생에 반영되며, Legacy 시스템 사용 시 주의할 점은 무엇인가요? [answer] | `AvatarStateAnimationComponent`에서 애니메이션 재생에 반영되는 속성은 `IsLegacy` 프로퍼티의 값에 따라 달라집니다. **1. `IsLegacy`가 `true`일 때** * **반영 속성:** `ActionSheet` * **설명:** `ActionSheet`는 애니메이션 이름과 `AnimationClip` RUID가 매핑된 테이블입니다. 이 값이 `true`로 설정되어 있으면 아바타의 상태 변화에 따라 `ActionSheet`에 정의된 애니메이션 클립이 재생됩니다. **2. `IsLegac [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 정의와 주의사항을 정확하고 명확하게 설명했으며, 불필요한 정보 없이 질문에 충실히 답했습니다. [source_doc] | 아바타의 상태 변화에 따라 재생될 애니메이션을 지정합니다. # Properties - **SyncDictionary<string, string> ActionSheet [Deprecated] [Sync]** 애니메이션의 이름과 AnimationClip RUID가 매핑된 테이블입니다. IsLegacy가 true일 때 사용됩니다. - **boolean IsLegacy [ReadOnly]** Legacy 시스템을 지원할지를 설정합니다. 이전 시스템은 더 이상 지원하지 않으며, 추후 삭제 예정입니다. - **SyncDictiona

[task] | instruction_following [pass] | ❌ 탈락 [title] | RectTileMapComponent [question] | 문서 내 모든 SetTile 메서드 오버로드를 호출하는 코드만 출력하고, 각 호출의 용도는 주석으로만 설명하세요. [answer] | ```lua Method: [server only] void OnBeginPlay() { local tilemap = self.Entity.CurrentMap:GetFirstChildComponentByTypeName("RectTileMapComponent") -- 인덱스 번호를 사용해 특정 좌표에 타일 배치 tilemap:SetTile(1, 5, 5) -- 인덱스 번호와 Vector2Int를 사용해 특정 좌표에 타일 배치 tilemap:SetTile(1, Vector2Int(5 [followup] | [followup_answer] | [scores] | helpfulness=1 correctness=0 coherence=2 complexity=2 verbosity=2 [judge_reason] | RectTileMapComponent에 접근하기 위해 문서에 없는 GetFirstChildComponentByTypeName API를 지어냈으므로 정확도가 0점입니다. [source_doc] | - **void BoxFill(int32 tileIndex, Vector2Int from, Vector2Int to)** from부터 to까지의 사각형 영역에 타일을 배치합니다. tileIndex는 타일의 인덱스 번호입니다. - **void BoxFill(string tileName, Vector2Int from, Vector2Int to)** from부터 to까지의 사각형 영역에 타일을 배치합니다. tileName은 타일의 Name 프로퍼티입니다. - **void BoxRemove(Vector2Int from, Vector

[task] | single_turn [pass] | ❌ 탈락 [title] | EntityPostModelSetEvent [question] | 서버와 클라이언트 모두에서 EntityPostModelSetEvent 가 발생한다고 하는데, 양쪽에서 동시에 핸들러가 실행될 때 주의할 점은 무엇인가요? [answer] | EntityPostModelSetEvent는 서버와 클라이언트 양쪽 모두에서 발생하는 이벤트입니다. 따라서 동일한 스크립트가 서버와 클라이언트 모두에 부착되어 있다면, 해당 엔티티의 Model이 설정될 때 서버에서 한 번, 클라이언트에서 한 번 총 두 번 핸들러가 실행됩니다. 양쪽에서 동시에(또는 각각) 핸들러가 실행될 때 주의해야 할 점은 다음과 같습니다. 1. **중복 로직 방지**: 서버와 클라이언트에서 모두 실행되는 로직(예: UI 업데이트, 사운드 재생, 파티클 효과 등)은 한쪽에서만 처리하도록 분리해야 합니다. 양쪽 [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=3 complexity=3 verbosity=3 [judge_reason] | 서버/클라이언트 구별 API 부재를 지적한 점은 정확하나, 이벤트 핸들러에 [server]/[client] 태그를 직접 붙이는 것이 불가능한지 명확히 구분하지 않고 '메서드 블록에 사용'이라 서술해 혼란을 줄 수 있으며, 예시 코드가 실제 동작 구조와 괴리가 있어 도움이 제한적입니다. [source_doc] | 엔티티의 대상 Model 설정 후 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * MODEntity <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **Model Model** 설정된 Model입니다. ##### inherited from

[task] | single_turn [pass] | ✅ 통과 [title] | KinematicbodyComponent [question] | GetGroundPosition()로 가져온 값을 다른 엔티티의 SetWorldPosition에 바로 전달하면 에러가 발생하는 이유는 무엇인가요? [answer] | `KinematicbodyComponent`의 `GetGroundPosition()` 메서드는 **로컬 좌표(local coordinates)** 기준으로 바닥 위치를 반환합니다. 반면, `SetWorldPosition()` 메서드는 **월드 좌표(world coordinates)**를 인수로 요구합니다. 로컬 좌표 값이 월드 좌표와 동일한 참조 프레임(원점과 축)을 공유하지 않기 때문에, 로컬 좌표 값을 그대로 `SetWorldPosition()`에 전달하면 의도하지 않은 위치로 엔티티가 이동하거나 좌계 변환 오류로 인해 동작이 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에서 GetGroundPosition이 로컬 좌표, SetWorldPosition이 월드 좌표임을 명시하고 있어 좌표계 불일치로 인한 오류 원인을 정확히 설명하였으며, GetWorldGroundPosition을 사용하는 올바른 대안 코드도 제시했습니다. [source_doc] | - **Vector2 GetGroundPosition()** 로컬 좌표 기준으로 바닥 위치를 반환합니다. - **Vector2 GetWorldGroundPosition()** 월드 좌표 기준으로 바닥 위치를 반환합니다. - **boolean IsOnGround()** 현재 지면에 닿아 있는 상태인지 확인합니다. 점프 중일 때 false를 반환합니다. - **void OnEnterRectTile(RectTileEnterEvent enterEvent) [ScriptOverridable]** RectTileEnterEven

[task] | code [pass] | ✅ 통과 [title] | EntityPostModelSetEvent [question] | OnBeginPlay 에서 _UserService 의 HandleUserEnterEvent 를 통해 생성된 엔티티의 EntityPostModelSetEvent 를 기다렸다가 Model 변경 시 _TimerService:SetTimerOnce 로 1초 후 log 를 출력하는 스크립트를 작성해줘 [answer] | 제공된 참고 문서에 `EntityPostModelSetEvent`는 `MODEntity` 컴포넌트에 의해 발생하며, 해당 이벤트 핸들러를 등록하는 구체적인 문법(`[service: MODEntity]` 또는 `[self]` 여부 등)이 명시되어 있지 않습니다. 또한, `OnBeginPlay`에서 `_UserService`의 `HandleUserEnterEvent`를 통해 "생성된" 엔티티가 아니라, 유저가 입장했을 때 이미 존재하는 또는 생성되는 유저 엔티티에 대한 참조를 얻는 과정과, 그 특정 엔티티의 `MODEntity` 이벤트 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 없는 동적 이벤트 구독 API를 지어내지 않고, 제공된 정보와 mLua 표준 규칙 내에서 가능한 범위와 한계를 정확히 설명하여 질문에 대한 적절한 답변을 제공합니다. [source_doc] | 엔티티의 대상 Model 설정 후 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * MODEntity <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **Model Model** 설정된 Model입니다. ##### inherited from

[task] | code [pass] | ✅ 통과 [title] | AvatarStateAnimationComponent [question] | `AvatarStateAnimationComponent`가 소속된 엔티티를 `Entity` 속성을 통해 가져와 해당 엔티티의 `TransformComponent` 위치를 로그로 출력하는 스크립트를 작성해줘 [answer] | `AvatarStateAnimationComponent`에 `Entity` 속성이 포함되어 있으며, 이 속성을 통해 해당 컴포넌트가 붙어 있는 엔티티를 직접 참조할 수 있습니다. 가져온 엔티티의 `TransformComponent`에서 `Position`을 읽어 `log` 함수로 출력하는 스크립트는 다음과 같습니다. ```lua Method: [server only] void OnBeginPlay() { local entity = self.Entity local position = entity.TransformCom [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 Entity 속성과 mLua 규칙에 따른 컴포넌트 접근 및 로그 출력이 정확하며, 요청사항을 간결하게 충족합니다. [source_doc] | 아바타의 상태 변화에 따라 재생될 애니메이션을 지정합니다. # Properties - **SyncDictionary<string, string> ActionSheet [Deprecated] [Sync]** 애니메이션의 이름과 AnimationClip RUID가 매핑된 테이블입니다. IsLegacy가 true일 때 사용됩니다. - **boolean IsLegacy [ReadOnly]** Legacy 시스템을 지원할지를 설정합니다. 이전 시스템은 더 이상 지원하지 않으며, 추후 삭제 예정입니다. - **SyncDictiona

[task] | single_turn [pass] | ✅ 통과 [title] | AvatarStateAnimationComponent [question] | IsLegacy 플래그가 true일 때와 false일 때 동작이 어떻게 달라지며, 기존 프로젝트에서는 어떤 방식으로 설정해야 하나요? [answer] | `IsLegacy` 플래그의 값에 따라 `AvatarStateAnimationComponent`가 애니메이션을 조회하고 관리하는 대상이 달라집니다. **1. 동작 차이** * **`IsLegacy`가 `true`인 경우:** * `StateToAvatarBodyActionSheet` 대신 **`ActionSheet`**를 사용합니다. * `SetActionSheet` 또는 `RemoveActionSheet` 메서드를 호출할 때 `ActionSheet`에 요소를 추가하거나 제거합니다. * 상태 [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | IsLegacy 플래그의 동작 차이를 문서에 충실히 설명하고, 설정 방법이 문서에 없음을 정확히 지적하여 정직하고 유용한 답변을 제공했습니다. [source_doc] | - **void ReceiveStateChangeEvent(IEventSender sender, StateChangeEvent stateEvent) [ScriptOverridable]** StateChangeEvent가 발생했을 때 호출되는 메소드입니다. 변경된 상태에 대응하는 애니메이션이 메이플스토리 월드에서 제공하는 Native 애니메이션일 경우 BodyActionStateChangeEvent를 발생시킵니다. 애니메이션이 크리에이터가 제작한 Custom 애니메이션일 경우 BodyActionTypeChangeEvnet를 발생시

[task] | single_turn [pass] | ✅ 통과 [title] | AvatarStateAnimationComponent [question] | IsLegacy 값을 false로 설정할 때 StateToAvatarBodyActionSheet에 어떤 타입의 데이터를 넣어야 하며, 기존 ActionSheet와 사용법이 어떻게 다른가요? [answer] | `IsLegacy` 값을 `false`로 설정할 경우, `StateToAvatarBodyActionSheet` 프로퍼티에 데이터를 입력해야 합니다. **1. 데이터 타입** `StateToAvatarBodyActionSheet`는 `SyncDictionary<string, AvatarBodyActionElement>` 타입입니다. 이는 **상태 이름(string)** 을 키(Key)로 하고, 해당 상태에서 재생할 **`AvatarBodyActionElement`** 객체를 값(Value)으로 매핑하는 테이블입니다. **2. 기존 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서의 타입 및 제약 조건을 정확히 비교 설명하고, 문서에 없는 세부 정보(AvatarBodyActionElement 구조)는 명시적으로 부재라고 밝혀 신뢰도가 높음. [source_doc] | 아바타의 상태 변화에 따라 재생될 애니메이션을 지정합니다. # Properties - **SyncDictionary<string, string> ActionSheet [Deprecated] [Sync]** 애니메이션의 이름과 AnimationClip RUID가 매핑된 테이블입니다. IsLegacy가 true일 때 사용됩니다. - **boolean IsLegacy [ReadOnly]** Legacy 시스템을 지원할지를 설정합니다. 이전 시스템은 더 이상 지원하지 않으며, 추후 삭제 예정입니다. - **SyncDictiona

[task] | single_turn [pass] | ✅ 통과 [title] | KinematicbodyComponent [question] | KinematicbodyComponent에서 Acceleration 프로퍼티가 Deprecated 처리된 이유는 무엇이며, 이제 어떤 프로퍼티를 사용해야 하나요? [answer] | `KinematicbodyComponent`의 `Acceleration` 프로퍼티는 더 이상 사용되지 않는(Deprecated) 프로퍼티입니다. 이 프로퍼티의 기능을 대체하기 위해 `SpeedFactor` 프로퍼티를 사용해야 합니다. `SpeedFactor`는 이동할 때 X축과 Y축 속력에 곱해지는 가중치로, 값이 클수록 이동 속력이 빨라지는 효과를 제공합니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 Acceleration 프로퍼티의 Deprecated 사유와 대체 수단인 SpeedFactor를 정확하고 간결하게 설명했습니다. [source_doc] | 탑다운 방식의 상하좌우 이동, 점프 및 렉트 타일과의 충돌 기능을 제공합니다. 중력과 가·감속 영항을 받지 않습니다. 타일맵이 RectTile일 때 동작합니다. # Properties - **Vector2 Acceleration [Deprecated]** 더는 사용하지 않는 프로퍼티입니다. SpeedFactor 프로퍼티를 사용하세요. - **boolean ApplyClimbableRotation [Sync]** true인 경우 회전하거나 기울어진 사다리를 탄 캐릭터는 사다리의 모습을 따릅니다. false인 경우 캐릭터는

[task] | single_turn [pass] | ✅ 통과 [title] | KinematicbodyComponent [question] | RectTileEnterEvent와 RectTileCollisionBeginEvent는 발생 시점이나 용도가 어떻게 다른가요? [answer] | RectTileEnterEvent와 RectTileCollisionBeginEvent는 발생 시점과 용도에서 다음과 같은 차이가 있습니다. **RectTileEnterEvent** * **발생 시점:** 엔티티가 **특정 사각형 타일(RectTile)에 진입했을 때** 발생합니다. * **용도:** 특정 타일 영역에 들어가는 것을 감지하는 데 사용됩니다. 예를 들어, 특정 방이나 구역에 들어갔을 때 효과를 적용하거나 스크립트 로직을 실행하는 경우에 적합합니다. * **관련 메서드:** `OnEnterRectTile(Re [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=3 coherence=4 complexity=2 verbosity=2 [judge_reason] | 두 이벤트의 정의와 차이점을 문서에 근거하여 명확히 설명했으나, CollisionBeginEvent의 구체적인 핸들러가 없음을 단정하거나 추측하는 서술이 포함되어 있어 정확성에 일부 감점이 있습니다. [source_doc] | - **Vector2 GetGroundPosition()** 로컬 좌표 기준으로 바닥 위치를 반환합니다. - **Vector2 GetWorldGroundPosition()** 월드 좌표 기준으로 바닥 위치를 반환합니다. - **boolean IsOnGround()** 현재 지면에 닿아 있는 상태인지 확인합니다. 점프 중일 때 false를 반환합니다. - **void OnEnterRectTile(RectTileEnterEvent enterEvent) [ScriptOverridable]** RectTileEnterEven

[task] | single_turn [pass] | ❌ 탈락 [title] | EntityWorldChangedEvent [question] | 이벤트에서 OldWorld 엔티티를 참조하여 이전 월드의 특정 오브젝트를 조작하려는데, OldWorld 프로퍼티가 항상 nil로만 나옵니다. 원인이 무엇일까요? [answer] | `EntityWorldChangedEvent`의 `OldWorld` 프로퍼티가 `nil`로 나타나는 가장 흔한 원인은 **이벤트가 발생하는 시점과 `OldWorld` 값이 유효하게 전달되는 조건** 때문일 수 있습니다. 참고 문서를 기반으로 분석해 보면, `EntityWorldChangedEvent`는 **MODEntity** API에 의해 발생합니다. 이 이벤트 객체는 `Entity entity`, `Entity oldWorld`, `Entity newWorld` 세 가지 값을 가진 생성자를 가집니다. `OldWorld`가 ` [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 없는 '클라이언트 동기화 문제'나 'oldWorld.Name' API를 지어내어 정확도가 낮으나, nil 원인(초기 생성)에 대한 추론과 방어적 코딩 예시는 도움이 됩니다. [source_doc] | 엔티티가 속한 월드가 변경될 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * MODEntity <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **Entity NewWorld** 엔티티가 새로 속한 월드 엔티티입니다. - **Entity

[task] | code [pass] | ✅ 통과 [title] | AvatarStateAnimationComponent [question] | `AvatarStateAnimationComponent`의 `Enable` 속성을 `false`로 설정하여 컴포넌트를 비활성화하는 스크립트를 작성해줘 [answer] | `AvatarStateAnimationComponent`의 `Enable` 속성은 `Component`에서 상속받아 사용할 수 있으며, `false`로 설정하면 해당 컴포넌트가 비활성화됩니다. 컴포넌트 비활성화를 수행하는 스크립트는 다음과 같습니다. ```lua Property: [None] boolean IsComponentDisabled = false Method: [server only] void OnBeginPlay() { -- AvatarStateAnimationComponent의 Enable 속성을 false [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 명시된 상속된 Enable 속성과 mLua 표준 문법(OnBeginPlay, self.Entity 접근, log)을 정확히 사용하여 질문에 대한 적절한 해결책을 제공했습니다. [source_doc] | 아바타의 상태 변화에 따라 재생될 애니메이션을 지정합니다. # Properties - **SyncDictionary<string, string> ActionSheet [Deprecated] [Sync]** 애니메이션의 이름과 AnimationClip RUID가 매핑된 테이블입니다. IsLegacy가 true일 때 사용됩니다. - **boolean IsLegacy [ReadOnly]** Legacy 시스템을 지원할지를 설정합니다. 이전 시스템은 더 이상 지원하지 않으며, 추후 삭제 예정입니다. - **SyncDictiona

[task] | code [pass] | ❌ 탈락 [title] | AvatarStateAnimationComponent [question] | StateAnimationComponent의 StateStringToAnimationKey 메서드를 오버라이드하여 "attack" 상태가 "Anim_Attack" 애니메이션 키를 반환하도록 하는 스크립트를 작성해줘 [answer] | `StateAnimationComponent`에서 상속받은 `StateStringToAnimationKey` 메서드는 `[ScriptOverridable]` 속성이 붙어 있어 스크립트에서 재정의(오버라이드)할 수 있습니다. 요구하신 "attack" 상태가 "Anim_Attack"을 반환하도록 하는 스크립트는 다음과 같습니다. ```lua Method: [client] string StateStringToAnimationKey (string stateName) { if stateName == "attack" then [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=3 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 super 호출에 대한 추측과 빈 문자열 반환이라는 잘못된 기본값 처리로 정확성이 낮고, [client] 지정 근거도 약하지만 질문 의도 자체는 파악했습니다. [source_doc] | - **void ReceiveStateChangeEvent(IEventSender sender, StateChangeEvent stateEvent) [ScriptOverridable]** StateChangeEvent가 발생했을 때 호출되는 메소드입니다. 변경된 상태에 대응하는 애니메이션이 메이플스토리 월드에서 제공하는 Native 애니메이션일 경우 BodyActionStateChangeEvent를 발생시킵니다. 애니메이션이 크리에이터가 제작한 Custom 애니메이션일 경우 BodyActionTypeChangeEvnet를 발생시

[task] | single_turn [pass] | ✅ 통과 [title] | KinematicbodyComponent [question] | 탑다운 방식의 이동과 충돌을 구현할 때, 타일맵이 RectTile이 아닌 경우 KinematicbodyComponent가 정상적으로 동작하지 않는 이유는 무엇인가요? [answer] | KinematicbodyComponent는 탑다운 방식의 상하좌우 이동, 점프, 그리고 렉트 타일(RectTile)과의 충돌 기능을 제공하도록 설계되어 있습니다. 이 컴포넌트는 타일맵이 RectTile일 때만 정상적으로 동작하며, 타일맵이 RectTile이 아닌 경우 충돌 기능이 올바르게 작동하지 않습니다. 이는 컴포넌트 자체의 동작 조건에 명시되어 있듯이, `EnableTileCollision` 프로퍼티가 활성화되어 있더라도 충돌 대상이 RectTileMap으로 한정되어 있기 때문입니다. 따라서 타일맵이 RectTile이 아니라 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 'RectTile일 때 동작한다'는 제약과 EnableTileCollision 프로퍼티의 설명을 정확히 인용하여 질문을 명확하게 답변하고 있습니다. [source_doc] | 탑다운 방식의 상하좌우 이동, 점프 및 렉트 타일과의 충돌 기능을 제공합니다. 중력과 가·감속 영항을 받지 않습니다. 타일맵이 RectTile일 때 동작합니다. # Properties - **Vector2 Acceleration [Deprecated]** 더는 사용하지 않는 프로퍼티입니다. SpeedFactor 프로퍼티를 사용하세요. - **boolean ApplyClimbableRotation [Sync]** true인 경우 회전하거나 기울어진 사다리를 탄 캐릭터는 사다리의 모습을 따릅니다. false인 경우 캐릭터는

[task] | code [pass] | ❌ 탈락 [title] | KinematicbodyComponent [question] | ShadowSize와 ShadowColor 프로퍼티를 초기화하고 OnUpdate에서 점프 높이에 따라 ShadowScalingRatio를 활용하여 그림자 크기를 동적으로 조절하는 스크립트를 작성해줘 [answer] | KinematicbodyComponent 문서에 따르면, `ShadowSize`는 그림자의 기본 크기를 나타내는 `Vector2` 프로퍼티이며, `ShadowScalingRatio`는 엔티티의 점프 높이에 따라 그림자 크기가 변화하는 비율을 나타내는 `float` 프로퍼티입니다. 문서에는 점프 높이를 직접 반환하는 메서드나 `ShadowScalingRatio`를 수동으로 적용하는 메서드가 명시되어 있지 않으며, `ShadowScalingRatio`의 설명에 "엔티티의 점프 높이에 따라 크기가 변화합니다"라고만 기재되어 있습니다. [followup] | [followup_answer] | [scores] | helpfulness=1 correctness=0 coherence=3 complexity=2 verbosity=2 [judge_reason] | KinematicbodyComponent를 MovementComponent로 잘못 지칭하여 컴포넌트 이름이 틀렸고, 요청된 동적 조절 로직을 API 부재로 단정했으나 문서에 명시되지 않은 점프 높이 접근 방법을 지어내지 않은 점은 정확성에서 일부 양호하나 핵심 컴포넌트 오류로 인해 전체 응답이 무효에 가까움. [source_doc] | 탑다운 방식의 상하좌우 이동, 점프 및 렉트 타일과의 충돌 기능을 제공합니다. 중력과 가·감속 영항을 받지 않습니다. 타일맵이 RectTile일 때 동작합니다. # Properties - **Vector2 Acceleration [Deprecated]** 더는 사용하지 않는 프로퍼티입니다. SpeedFactor 프로퍼티를 사용하세요. - **boolean ApplyClimbableRotation [Sync]** true인 경우 회전하거나 기울어진 사다리를 탄 캐릭터는 사다리의 모습을 따릅니다. false인 경우 캐릭터는

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