← 목록

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

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

[task] | instruction_following [pass] | ✅ 통과 [title] | CameraSwitchEvent [question] | CameraSwitchEvent의 Properties와 Constructor를 표로 정리해서 출력하세요. [answer] | CameraSwitchEvent의 Properties와 Constructor 정보는 다음과 같습니다. ### Properties | 프로퍼티 | 타입 | 설명 | | :--- | :--- | :--- | | `PreviousComponent` | `CameraComponent` | 이전에 비추던 대상 CameraComponent입니다. `nil`일 수 있습니다. | | `SwitchedComponent` | `CameraComponent` | 전환된 대상 CameraComponent입니다. | ### Constructors [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 CameraSwitchEvent 프로퍼티와 생성자 정보를 요청된 표 형식으로 정확하고 간결하게 정리했습니다. [source_doc] | 카메라가 비추는 대상이 전환될 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * CameraService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **CameraComponent PreviousComponent** 이전에 비추던 대상 CameraCompone

[task] | single_turn [pass] | ✅ 통과 [title] | PlayerComponent [question] | PVPMode가 true로 설정되어 있을 때, 플레이어끼리 공격이 가능해지는지 아니면 단순히 공격 허용 여부만 바뀌는지에 대한 구체적인 동작 방식이 궁금합니다. [answer] | 참고 문서에 포함된 정보를 바탕으로 답변드립니다. `PVPMode` 프로퍼티의 설명은 **"플레이어끼리 공격이 가능한지를 설정합니다"** 로만 명시되어 있습니다. 따라서 문서상으로는 `PVPMode`가 `true`로 설정될 때 공격이 실제로 어떻게 처리되는지(예: 데미지 계산 방식, 타격감, 특정 스킬 제한 해제 등)에 대한 **구체적인 동작 방식이나 내부 로직은 제공되지 않습니다.** 단순히 "가능 여부"를 제어하는 플래그일 뿐, 그 이후의 게임 플레이 메커니즘(공격 판정, 데미지 적용 등)은 `PlayerComponent` [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 없는 세부 동작 방식을 지어내지 않고, 문서에 명시된 내용만 근거로 정확한 한계를 명확히 설명하여 질문의 의도를 잘 충족했습니다. [source_doc] | 플레이어를 나타내고, 관련 기능을 제공합니다. # Properties - **integer Hp [Sync] [HideFromInspector]** 현재 Hp입니다. - **integer MaxHp [Sync]** 최대 Hp입니다. - **string Nickname [Sync] [HideFromInspector]** 플레이어의 닉네임입니다. - **string ProfileCode [Sync] [ReadOnly] [HideFromInspector]** 플레이어의 프로필 코드입니다. - **boolean PVPMo

[task] | single_turn [pass] | ✅ 통과 [title] | AttackEvent [question] | AttackEvent의 DefenderEntity 속성으로 접근할 수 있는 피격자 엔티티는 공격자 엔티티와 동일한 객체를 참조하나요? [answer] | 제공된 문서 내용에는 `AttackEvent`의 `DefenderEntity` 속성이 피격자 엔티티를 참조한다는 정보만 명시되어 있습니다. 문서에는 `DefenderEntity`가 공격자 엔티티와 동일한 객체를 참조할 수 있는지, 아니면 항상 다른 객체(피격자)만을 참조하는지에 대한 설명이나 조건이 포함되어 있지 않습니다. 따라서 주어진 문서만으로는 두 엔티티가 동일한 객체를 참조할 수 있는지에 대해 단정할 수 없습니다. [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 정보는 지어내지 않고, 문서에 명시되지 않았음을 정확히 지적하여 질문의 한계를 충실히 설명했습니다. [source_doc] | 엔티티가 공격할 때 발생하는 이벤트입니다. AttackComponent에서 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * AttackComponent <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 DefenderEntity** 피격

[task] | single_turn [pass] | ✅ 통과 [title] | AttackEvent [question] | AttackComponent에서 AttackEvent가 발생하면 Server와 Client 모두에서 핸들러가 실행되나요? [answer] | 네, `AttackComponent`에서 발생하는 `AttackEvent`는 Server와 Client 양쪽 공간(Space)에서 모두 발생합니다. 따라서 해당 이벤트를 처리하는 핸들러를 등록하면, 서버와 클라이언트 환경 모두에서 실행됩니다. ```lua Event Handler: [self] HandleAttackEvent (AttackEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: AttackComponent -- Sp [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 AttackEvent 발생 공간(Server, Client)과 프로퍼티 정보를 정확히 반영하여 질문에 충실히 답변했습니다. [source_doc] | 엔티티가 공격할 때 발생하는 이벤트입니다. AttackComponent에서 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * AttackComponent <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 DefenderEntity** 피격

[task] | single_turn [pass] | ✅ 통과 [title] | TransformComponent [question] | 자유낙하 예제에서 CurrentVelocity에 [Sync] 태그를 붙인 이유는 무엇이며, 생략하면 어떻게 되나요? [answer] | `CurrentVelocity`에 `[Sync]` 태그를 붙인 이유는 클라이언트(클라이언트 사이드)와 서버 사이에서 이 속도의 값을 동기화하기 위해서입니다. 자유낙하 예제에서 물리 계산(중력 가속, 속도 증가, 위치 이동)은 `[server only]`로 지정된 `OnUpdate` 함수 안에서 서버에서만 수행됩니다. 하지만 화면에 표시되는 엔티티의 위치 변화는 클라이언트에서도 확인해야 하므로, 서버에서 계산된 `CurrentVelocity`의 값이 클라이언트로 전송되어야 합니다. `[Sync]` 태그는 이 프로퍼티의 값이 변경될 [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | [Sync] 태그의 목적과 생략 시 영향을 논리적으로 잘 설명했으나, TransformComponent의 위치 동기화 메커니즘과 [Sync]의 관계를 명시적 근거 없이 추론한 점이 있어 완벽하지는 않음. [source_doc] | 다음은 `ZRotation` 프로퍼티를 이용해 Entity를 일정한 속력으로 회전시키는 예제입니다. ```lua Property: [None] number AngularSpeed = 360 Method: [server only] void OnUpdate (number delta) { local transform = self.Entity.TransformComponent local zRotation = transform.ZRotation transform.ZRotation = zRotation + (self.Angular

[task] | single_turn [pass] | ✅ 통과 [title] | TransformComponent [question] | TransformComponent의 ZRotation 프로퍼티를 직접 수정하는 것과 Rotate 메서드를 호출하는 것은 어떤 차이가 있나요? [answer] | 제공된 참고 문서에는 `ZRotation` 프로퍼티를 직접 수정하는 방식과 `Rotate` 메서드를 호출하는 방식 모두 동일한 동작(일정한 속력으로 회전)을 수행하는 예제로 제시되어 있습니다. 두 방식은 최종적으로 엔티티의 회전 결과를 동일하게 만들어 주지만, 문서에서는 두 방식 간의 내부 구현 차이, 성능 차이, 또는 사용 시 유의점에 대한 추가 설명을 제공하지 않습니다. 따라서 현재 문서 정보만으로는 두 방식의 구체적인 차이를 설명할 수 없으며, 단순히 "동일한 동작을 하는 코드"로 표현되어 있습니다. 참고로 문서에 포함된 [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=3 [judge_reason] | 문서에 명시된 '동일한 동작' 정보에 기반하여 차이가 없다는 점을 정확히 설명하고 코드를 인용했으나, 두 코드 블록을 다시 반복 제시하여 다소 장황함. [source_doc] | 다음은 `ZRotation` 프로퍼티를 이용해 Entity를 일정한 속력으로 회전시키는 예제입니다. ```lua Property: [None] number AngularSpeed = 360 Method: [server only] void OnUpdate (number delta) { local transform = self.Entity.TransformComponent local zRotation = transform.ZRotation transform.ZRotation = zRotation + (self.Angular

[task] | code [pass] | ❌ 탈락 [title] | TransformComponent [question] | 자신의 TransformComponent 위치를 매 프레임 10만큼 x축 방향으로 이동시키는 스크립트를 작성해줘 [answer] | mLua 스크립트에서 매 프레임 위치를 변경하려면 표준 생명주기 메서드인 `OnUpdate`를 사용합니다. `OnUpdate`는 매 프레임마다 호출되며, `delta` 파라미터로 프레임 간 경과 시간을 제공합니다. `self.Entity.TransformComponent.Position`은 `Vector3` 타입의 프로퍼티로, 엔티티의 부모를 기준으로 한 좌표를 나타냅니다. 이 값에 x축 방향으로 10만큼 더하면 됩니다. 참고로, `OnUpdate`는 기본적으로 서버와 클라이언트 모두에서 실행될 수 있지만, 네트워크 동기화를 고 [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=4 complexity=3 verbosity=2 [judge_reason] | '매 프레임 10만큼'이라는 질문 의도에 맞지 않게 delta를 무시하고 고정값을 더하는 비효율적인 코드를 제시했으며, mLua에서 Vector3 프로퍼티의 x 성분을 직접 수정하는 문법적 정확성을 보장하기 어렵습니다. [source_doc] | 엔티티의 위치, 회전, 크기를 나타냅니다. # Properties - **Vector3 Position [Sync]** 엔티티의 부모를 기준으로 좌표를 나타냅니다. - **Quaternion QuaternionRotation [Sync] [HideFromInspector]** 엔티티의 회전 값을 Quaternion으로 나타냅니다. - **Vector3 Rotation** 엔티티의 회전 값을 오일러 각으로 나타냅니다. 2차원에서는 Z축을 이용하여 회전할 수 있습니다. QuaternitonRotation에 의해 동기화됩니

[task] | single_turn [pass] | ✅ 통과 [title] | CameraSwitchEvent [question] | CameraSwitchEvent가 발생하는 시점이 서버와 클라이언트 중 어디인지 확인하고 싶습니다. [answer] | CameraSwitchEvent는 **클라이언트(Client)** 공간에서만 발생합니다. 이는 해당 이벤트가 `CameraService`에 의해 트리거되며, `CameraService`의 실행 공간이 Client로 지정되어 있기 때문입니다. 따라서 서버에서는 이 이벤트를 수신하거나 처리할 수 없습니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 CameraService Client 배지와 이벤트 발생 주체에 근거하여 질문을 정확하고 간결하게 답변했습니다. [source_doc] | 카메라가 비추는 대상이 전환될 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * CameraService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **CameraComponent PreviousComponent** 이전에 비추던 대상 CameraCompone

[task] | two_turn [pass] | ✅ 통과 [title] | Sprite [question] | UI에서 Sprite를 Sliced 방식으로 렌더링할 때 Border 프로퍼티의 Vector4 값이 어떻게 적용되는지 알려주세요. [answer] | Sprite의 `Border` 프로퍼티는 UI에서 Sliced 방식으로 렌더링할 때 사용되는 경곗값을 담고 있는 `Vector4` 타입의 읽기 전용(ReadOnly) 값입니다. 이 값이 구체적으로 어떻게 적용되는지에 대한 상세 동작 원리나 계산 방식에 대한 설명은 제공된 문서에 포함되어 있지 않습니다. 문서에는 해당 프로퍼티가 "UI에서 Sprite를 Sliced 방식으로 렌더링할 때 사용하는 경곗값"임을 명시하고 있을 뿐, 픽셀 단위의 좌표 계산 방식이나 렌더링 엔진에서의 내부 처리 과정은 설명하고 있지 않습니다. 따라서 `B [followup] | Border 값이 (10, 10, 10, 10)으로 설정된 스프라이트를 UI에서 확대했을 때 중앙 부분과 모서리 부분이 어떻게 렌더링되는지 시각적으로 설명해 주세요. [followup_answer] | 제공된 참고 문서에는 `Border` 프로퍼티가 "UI에서 Sprite를 Sliced 방식으로 렌더링할 때 사용하는 경곗값"임을 명시하고 있을 뿐, Sliced 렌더링 시 중앙 부분과 모서리 부분이 구체적으로 어떻게 확대되고 렌더링되는지(예: 중앙의 스트레칭 방식, 모서리의 고정 방식 등)에 대한 시각적 설명이나 동작 원리가 포함되어 있지 않습니다. 따라서 `Border` 값이 (10, 10, 10, 10)으로 설정된 상태에서의 구체적인 렌더링 동작을 문서 근거로 설명할 수 없습니다. [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 상세 동작 원리를 지어내지 않고, 문서에 명시된 범위 내에서 제한점을 명확히 설명하여 정확하고 유용한 답변입니다. [source_doc] | MSW의 이미지를 표현하기 위한 메타 정보(피벗, 보더 등)와 이미지의 텍스쳐 바이너리를 담고 있는 클래스입니다. # Properties - **Vector4 Border [ReadOnly]** UI에서 Sprite를 Sliced 방식으로 렌더링할 때 사용하는 경곗값입니다. - **RectOffset Collision [ReadOnly]** 충돌 범위를 표현하는 aabb 박스입니다. - **ReadOnlyList<ReadOnlyList<Vector2Int>> Footholds [ReadOnly]** 엔티티가 올라설 수

[task] | single_turn [pass] | ✅ 통과 [title] | CameraSwitchEvent [question] | CameraSwitchEvent는 어떤 서비스의 API 호출에 의해 트리거되는지 알려주세요. [answer] | `CameraSwitchEvent`는 `CameraService`의 API 호출에 의해 트리거됩니다. 이 이벤트는 Client 공간에서 발생합니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 CameraService와 Client 공간 발생 정보를 정확하고 간결하게 답변했습니다. [source_doc] | 카메라가 비추는 대상이 전환될 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * CameraService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **CameraComponent PreviousComponent** 이전에 비추던 대상 CameraCompone

[task] | single_turn [pass] | ✅ 통과 [title] | PlayerComponent [question] | ProcessDead와 ProcessRevive 메서드는 Client 실행제어 함수라고 명시되어 있는데, 서버 스크립트에서 특정 유저를 죽이거나 살리기 위해 이 메서드를 호출할 수 있나요? [answer] | **결론부터 말씀드리면, 서버 스크립트에서 `ProcessDead`와 `ProcessRevive` 메서드를 직접 호출하여 특정 유저를 죽이거나 살릴 수는 없습니다.** 이유는 다음과 같습니다: 1. **실행 공간 제한:** `ProcessDead`와 `ProcessRevive` 메서드는 문서에서 **`[Client]`** 태그가 붙어 있어 클라이언트 실행 환경에서만 동작하도록 지정되어 있습니다. 서버 스크립트(`[server only]` 등)에서는 이 메서드를 호출할 수 없습니다. 2. **타겟 지정 방식:** 이 메서드들은 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 명시된 [Client] 태그를 근거로 서버 호출 불가라는 결론을 정확히 도출하고, 대안 API 부재까지 논리적으로 설명하여 질문에 충실히 답했습니다. [source_doc] | 플레이어를 나타내고, 관련 기능을 제공합니다. # Properties - **integer Hp [Sync] [HideFromInspector]** 현재 Hp입니다. - **integer MaxHp [Sync]** 최대 Hp입니다. - **string Nickname [Sync] [HideFromInspector]** 플레이어의 닉네임입니다. - **string ProfileCode [Sync] [ReadOnly] [HideFromInspector]** 플레이어의 프로필 코드입니다. - **boolean PVPMo

[task] | code [pass] | ✅ 통과 [title] | TransformComponent [question] | 로컬 좌표 (1, 0, 0) 지점을 월드 좌표로 변환하여 ToWorldPoint 메서드의 결과를 로그로 출력하는 스크립트를 작성해줘 [answer] | TransformComponent의 `ToWorldPoint(Vector3 localPoint)` 메서드를 사용하면 로컬 좌표를 월드 좌표로 변환할 수 있습니다. 이 메서드는 Scale 값의 영향을 받습니다. 요청하신 로직을 수행하는 스크립트는 다음과 같습니다. ```lua Property: [None] number TestFlag = 0 Method: [server] void ConvertLocalToWorld() { -- 로컬 좌표 (1, 0, 0) local localPoint = Vector3(1, 0, [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=3 coherence=4 complexity=2 verbosity=2 [judge_reason] | 요청된 로직을 구현했으나, 문서에 없는 HandleBeginPlayEvent 대신 표준 생명주기 메서드 OnBeginPlay()를 사용하는 것이 더 정확하며, ToWorldPoint의 Scale 영향 설명이 약간 모호합니다. [source_doc] | 엔티티의 위치, 회전, 크기를 나타냅니다. # Properties - **Vector3 Position [Sync]** 엔티티의 부모를 기준으로 좌표를 나타냅니다. - **Quaternion QuaternionRotation [Sync] [HideFromInspector]** 엔티티의 회전 값을 Quaternion으로 나타냅니다. - **Vector3 Rotation** 엔티티의 회전 값을 오일러 각으로 나타냅니다. 2차원에서는 Z축을 이용하여 회전할 수 있습니다. QuaternitonRotation에 의해 동기화됩니

[task] | instruction_following [pass] | ✅ 통과 [title] | TriggerComponent [question] | IsPassive 속성이 충돌 이벤트 발생 조건에 미치는 영향을 설명하되, 3문장 이내로 작성하세요. [answer] | IsPassive가 true인 TriggerComponent는 스스로 충돌 검사를 수행하지 않습니다. IsPassive가 true인 TriggerComponent끼리만 충돌하면 이벤트가 발생하지 않습니다. 이벤트가 발생하려면 적어도 하나의 TriggerComponent에서 IsPassive가 false여야 합니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서의 IsPassive 설명과 정확히 일치하며, 3문장 이내로 명확하게 답변했습니다. [source_doc] | 엔티티에 충돌 영역을 설정하고 충돌을 감지할 수 있는 기능을 제공합니다. # Properties - **Vector2 BoxOffset [Deprecated] [Sync]** IsLegacy가 true인 이전 시스템에서 사용할 수 있습니다. 엔티티를 기준으로 충돌체 직사각형의 중심점 위치를 설정합니다. - **Vector2 BoxSize [Sync]** 직사각형 충돌체의 너비와 높이를 지정합니다. - **float CircleRadius [Sync]** 원형 충돌체의 반지름입니다. ColliderType이 Circle

[task] | two_turn [pass] | ✅ 통과 [title] | Sprite [question] | Sprite 리소스의 Pivot과 PivotPixel 프로퍼티가 월드 배치 시 어떻게 작용하는지 설명해 주세요. [answer] | Sprite 리소스의 `Pivot`과 `PivotPixel` 프로퍼티는 스프라이트를 월드에 배치할 때 중심점(회전, 이동의 기준점)을 결정하는 값입니다. * **`Pivot` (Vector2)**: 스프라이트의 중심점을 0에서 1 사이의 비율 값으로 표현합니다. 예를 들어 `Vector2(0.5, 0.5)`는 스프라이트의 정중앙을 의미하며, `Vector2(0, 0)`은 좌측 하단 모서리를 의미합니다. * **`PivotPixel` (Vector2Int)**: 위 `Pivot` 비율 값을 픽셀 단위로 변환한 값입니다. 스프 [followup] | Sprite를 특정 위치에서 회전할 때 Pivot과 PivotPixel 값이 다른 경우 회전 축이 어떻게 달라지는지 구체적인 예시를 들어 설명해 주세요. [followup_answer] | Sprite의 `Pivot`과 `PivotPixel`은 동일한 중심점을 서로 다른 단위(비율 vs 픽셀)로 표현한 값이므로, **회전 축(회전의 기준점)은 항상 동일합니다.** `PivotPixel`은 `Pivot` 값을 스프라이트의 `Width`와 `Height`에 곱해서 계산된 값이기 때문에, 두 값이 "다른" 것이 아니라 서로 대응하는 값입니다. 따라서 회전 축이 달라지는 경우는 없으며, `Pivot`이 지정된 위치가 회전 축이 됩니다. ### 구체적 예시 가로 100px, 세로 100px인 정사각형 스프라이트를 가정해 [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 정의와 속성을 정확히 인용하여 Pivot과 PivotPixel의 역할 및 ReadOnly 특성을 명확히 설명했습니다. [source_doc] | MSW의 이미지를 표현하기 위한 메타 정보(피벗, 보더 등)와 이미지의 텍스쳐 바이너리를 담고 있는 클래스입니다. # Properties - **Vector4 Border [ReadOnly]** UI에서 Sprite를 Sliced 방식으로 렌더링할 때 사용하는 경곗값입니다. - **RectOffset Collision [ReadOnly]** 충돌 범위를 표현하는 aabb 박스입니다. - **ReadOnlyList<ReadOnlyList<Vector2Int>> Footholds [ReadOnly]** 엔티티가 올라설 수

[task] | single_turn [pass] | ✅ 통과 [title] | ResourceObject [question] | IsLoadComplete가 true가 되기 전까지 리소스를 사용할 수 없는데, 로드가 완료될 때까지 대기하는 코드를 어떻게 작성하나요? [answer] | `ResourceObject`의 `IsLoadComplete` 프로퍼티는 리소스가 정상적으로 로드가 완료되었는지를 확인하는 플래그입니다. 참고 문서에는 `IsLoadComplete`가 `true`가 될 때까지 대기하는 특정 API나 이벤트 핸들러가 명시되어 있지 않습니다. 따라서 문서에 근거하여 작성할 수 있는 방법은, `IsLoadComplete`가 `true`가 될 때까지 **매 프레임 업데이트**를 통해 상태를 확인하는 것입니다. `OnUpdate` 메서드에서 `IsLoadComplete` 값을 확인하고, `true`가 될 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 명시되지 않은 대기 API가 없음을 정확히 지적하고, 표준 생명주기 메서드인 OnUpdate를 활용한 폴링 방식이라는 합리적 대안을 제시했으며, 코드 예시도 mLua 문법에 맞게 작성되어 있어 유용하고 정확합니다. [source_doc] | MSW의 다양한 리소스를 표현하기 위한 리소스 추상 클래스입니다. # Properties - **boolean IsLoadComplete [ReadOnly]** 리소스가 정상적으로 로드가 완료됐는지를 확인하는 플래그입니다. MSW 내 모든 리소스는 로드가 완료되어야 사용이 가능합니다. - **string RUID [ReadOnly]** 리소스의 RUID입니다. - **ResourceType Type [ReadOnly]** 이 리소스의 타입입니다.

[task] | single_turn [pass] | ✅ 통과 [title] | TransformComponent [question] | OnUpdate에서 delta 값을 그대로 곱해서 이동시키는 방식과 고정된 값을 더하는 방식 중 왜 delta를 사용하는 것이 권장되나요? [answer] | `OnUpdate`의 `delta` 파라미터는 직전 프레임부터 현재 프레임까지 경과한 시간(초)을 의미합니다. 이 값을 이동량에 곱하는 방식이 권장되는 이유는 게임 로직의 **프레임레이트(FPS) 독립성** 때문입니다. 메이플스토리 월드와 같은 실시간 렌더링 환경에서 `OnUpdate`가 호출되는 간격은 시스템 성능이나 디스플레이 주사율에 따라 매 프레임마다 미세하게 달라질 수 있습니다. 1. **고정된 값을 더하는 방식의 문제점**: * 예를 들어, 매 프레임마다 고정된 값 `5`를 위치값에 더한다고 가정해 봅시다 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | delta 사용의 필요성을 프레임레이트 독립성 관점에서 명확하고 정확하게 설명했으며, 참고 문서의 코드 패턴과도 일치한다. [source_doc] | 다음은 `ZRotation` 프로퍼티를 이용해 Entity를 일정한 속력으로 회전시키는 예제입니다. ```lua Property: [None] number AngularSpeed = 360 Method: [server only] void OnUpdate (number delta) { local transform = self.Entity.TransformComponent local zRotation = transform.ZRotation transform.ZRotation = zRotation + (self.Angular

[task] | single_turn [pass] | ✅ 통과 [title] | CameraSwitchEvent [question] | CameraSwitchEvent를 직접 생성하여 다른 시스템에 전달할 때 필요한 파라미터는 무엇인가요? [answer] | `CameraSwitchEvent`를 직접 생성할 때는 다음과 같은 파라미터를 사용할 수 있습니다. 1. **previousComponent** (CameraComponent, 기본값: nil): 이전에 비추던 대상의 `CameraComponent`입니다. 2. **switchedComponent** (CameraComponent, 기본값: nil): 전환된 대상의 `CameraComponent`입니다. 이 두 가지 파라미터는 모두 선택 사항이며, 값을 지정하지 않으면 `nil`로 초기화됩니다. 예를 들어, 다른 시스템에 이벤 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 생성자 시그니처와 프로퍼티 정보를 정확히 인용하여 질문에 충실히 답변했으며, 예제 코드도 mLua 문법에 부합합니다. [source_doc] | 카메라가 비추는 대상이 전환될 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * CameraService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **CameraComponent PreviousComponent** 이전에 비추던 대상 CameraCompone

[task] | two_turn [pass] | ✅ 통과 [title] | ResourceObject [question] | `ResourceType` 프로퍼티가 어떤 값을 가질 수 있으며, 특정 타입의 리소스만 필터링해서 처리하는 코드는 어떻게 작성하나요? [answer] | 제공된 문서에는 `ResourceType` 프로퍼티가 어떤 구체적인 값(열거형 상수 등)을 가질 수 있는지에 대한 정보가 포함되어 있지 않습니다. 또한, 특정 타입의 리소스를 필터링하는 데 사용되는 비교 연산자나 조건문 예시도 문서에 명시되어 있지 않습니다. 문서에서 확인 가능한 사실은 다음과 같습니다: 1. `ResourceType Type [ReadOnly]` 프로퍼티가 존재하며, 이 리소스의 타입을 나타냅니다. 2. `boolean IsLoadComplete [ReadOnly]` 프로퍼티를 통해 리소스가 로드가 완료되었는지 [followup] | `RUID`를 통해 특정 리소스를 직접 참조할 때 `ResourceType` 확인이 필요한 예외적인 상황은 무엇인가요? [followup_answer] | 제공된 문서에 따르면, `RUID`를 통해 특정 리소스를 직접 참조할 때 `ResourceType` 확인이 필요한 예외적인 상황에 대한 정보는 포함되어 있지 않습니다. 문서에서 확인 가능한 내용은 다음과 같습니다: 1. `RUID`는 리소스의 고유 식별자(string)입니다. 2. `ResourceType`은 리소스의 타입을 나타내는 읽기 전용 프로퍼티입니다. 3. 모든 리소스는 `IsLoadComplete`가 true(로드 완료)되어야만 사용이 가능합니다. 따라서 `RUID` 참조 시 `ResourceType` 확인이 필요한 [scores] | helpfulness=3 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 없는 구체적 열거형 값을 지어내지 않고 문서 근거만으로 접근 방식을 설명하며, 문서에 없는 정보임을 명확히 구분하여 정확하고 일관된 답변을 제공했습니다. [source_doc] | MSW의 다양한 리소스를 표현하기 위한 리소스 추상 클래스입니다. # Properties - **boolean IsLoadComplete [ReadOnly]** 리소스가 정상적으로 로드가 완료됐는지를 확인하는 플래그입니다. MSW 내 모든 리소스는 로드가 완료되어야 사용이 가능합니다. - **string RUID [ReadOnly]** 리소스의 RUID입니다. - **ResourceType Type [ReadOnly]** 이 리소스의 타입입니다.

[task] | code [pass] | ❌ 탈락 [title] | PlayerComponent [question] | 플레이어가 죽었을 때(Nickname 출력 포함) 5초 후 부활 처리를 수행하는 스크립트를 작성해줘 [answer] | 플레이어가 죽었을 때 닉네임을 출력하고 5초 후 부활 처리를 수행하는 스크립트는 다음과 같습니다. `PlayerComponent`의 `IsDead()` 메서드를 사용하여 사망 여부를 확인하고, `ProcessRevive()` 메서드를 통해 부활을 처리합니다. 사망 상태가 감지된 후 5초의 대기 시간을 두기 위해 `_TimerService`의 `SetTimerOnce`를 사용했습니다. ```lua Property: [Sync] boolean isDead = false Method: [server only] void OnUpdat [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=2 complexity=3 verbosity=4 [judge_reason] | ProcessRevive()가 [Client]로 명시되어 있음에도 서버 스크립트에서 직접 호출하는 잘못된 코드와 과도한 추측성 설명이 포함되어 있어 정확도와 간결성에서 감점됩니다. [source_doc] | 플레이어를 나타내고, 관련 기능을 제공합니다. # Properties - **integer Hp [Sync] [HideFromInspector]** 현재 Hp입니다. - **integer MaxHp [Sync]** 최대 Hp입니다. - **string Nickname [Sync] [HideFromInspector]** 플레이어의 닉네임입니다. - **string ProfileCode [Sync] [ReadOnly] [HideFromInspector]** 플레이어의 프로필 코드입니다. - **boolean PVPMo

[task] | single_turn [pass] | ✅ 통과 [title] | Sprite [question] | UI에서 Sprite를 Sliced 방식으로 렌더링할 때 Border 속성이 어떤 역할을 하는지, 또 이 값을 직접 수정할 수 있나요? [answer] | Sprite의 `Border` 속성은 UI에서 Sprite를 Sliced 방식으로 렌더링할 때 사용하는 경곗값입니다. 이 값을 직접 수정할 수는 없습니다. `Border` 속성은 `[ReadOnly]`로 지정되어 있기 때문에 읽기 전용이며, 스크립트에서 값을 변경하는 것은 불가능합니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 참고 문서에 명시된 Border 속성의 정의와 ReadOnly 속성을 정확히 설명하여 질문에 완벽하게 답하고 있습니다. [source_doc] | MSW의 이미지를 표현하기 위한 메타 정보(피벗, 보더 등)와 이미지의 텍스쳐 바이너리를 담고 있는 클래스입니다. # Properties - **Vector4 Border [ReadOnly]** UI에서 Sprite를 Sliced 방식으로 렌더링할 때 사용하는 경곗값입니다. - **RectOffset Collision [ReadOnly]** 충돌 범위를 표현하는 aabb 박스입니다. - **ReadOnlyList<ReadOnlyList<Vector2Int>> Footholds [ReadOnly]** 엔티티가 올라설 수

[task] | single_turn [pass] | ✅ 통과 [title] | AttackEvent [question] | AttackEvent 핸들러 내에서 DefenderEntity에 직접 공격을 가하는 로직을 작성할 때 주의해야 할 점은 무엇인가요? [answer] | 제공된 참고 문서에는 `AttackEvent`의 구조(`DefenderEntity` 프로퍼티 존재 여부, `AttackComponent` 발생)만 명시되어 있으며, **`DefenderEntity`에 직접 공격을 가하는 로직이나 관련 주의사항(예: 재귀 호출 방지, 인과관계 오류 등)에 대한 정보는 포함되어 있지 않습니다.** 따라서 문서에 근거하여 답변할 수 있는 내용은 다음과 같습니다. 1. **`DefenderEntity` 접근 방법**: `AttackEvent` 핸들러 내에서 `event.DefenderEntity`를 [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 정보를 지어내지 않고 문서 기반 사실만 정확히 서술했으며, 질문의 의도를 이해하여 관련 주의사항 부재와 잠재적 리스크를 적절히 안내했습니다. [source_doc] | 엔티티가 공격할 때 발생하는 이벤트입니다. AttackComponent에서 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * AttackComponent <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 DefenderEntity** 피격

[task] | instruction_following [pass] | ❌ 탈락 [title] | TriggerComponent [question] | OnEnterTriggerBody 이벤트 핸들러를 구현하는 mLua 스크립트 코드만 출력하고 설명은 주석으로 작성하세요. [answer] | ```lua Method: [server only] void OnEnterTriggerBody(TriggerEnterEvent enterEvent) { -- TriggerEnterEvent 객체에서 진입한 엔티티를 추출합니다. local enteredEntity = enterEvent.TriggerBodyEntity -- 진입한 엔티티의 이름을 로그로 출력하여 충돌 감지 여부를 확인합니다. log("Entity entered trigger: " .. enteredEntity.Name) } ``` [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=4 complexity=2 verbosity=2 [judge_reason] | TriggerEnterEvent의 필드 이름(TriggerBodyEntity)과 Entity의 Name 프로퍼티가 참고 문서에 명시되어 있지 않아 지어낸 것으로 판단되며, 구조와 주석은 명확합니다. [source_doc] | 엔티티에 충돌 영역을 설정하고 충돌을 감지할 수 있는 기능을 제공합니다. # Properties - **Vector2 BoxOffset [Deprecated] [Sync]** IsLegacy가 true인 이전 시스템에서 사용할 수 있습니다. 엔티티를 기준으로 충돌체 직사각형의 중심점 위치를 설정합니다. - **Vector2 BoxSize [Sync]** 직사각형 충돌체의 너비와 높이를 지정합니다. - **float CircleRadius [Sync]** 원형 충돌체의 반지름입니다. ColliderType이 Circle

[task] | code [pass] | ❌ 탈락 [title] | SequenceNode [question] | SequenceNode에 자식 노드를 AttachChildAt 메서드를 사용하여 1번째 인덱스에 "StartAction", 2번째 인덱스에 "EndAction" 이름의 노드를 추가하고, "StartAction" 이름의 노드를 DetachChild(string nodeName) 메서드로 제거한 후, 제거 성공 여부를 boolean 값으로 확인하여 log에 출력하는 스크립트를 작성해줘. [answer] | ```lua Property: [None] any SequenceNode = nil Method: void OnBeginPlay() { -- 1. SequenceNode 생성 self.SequenceNode = SequenceNode("MySequence") -- 2. StartAction 노드 생성 및 1번째 인덱스에 추가 local startNode = BTNode("StartAction") self.SequenceNode:AttachChildAt(startNode, 1) -- 3 [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=4 complexity=2 verbosity=2 [judge_reason] | BTNode가 추상 클래스인지 확인이 필요하며, 문서에 없는 생성자를 지어내거나 구체적인 액션 노드(예: ActionNode)를 사용해야 할 가능성을 무시하여 정확성이 다소 낮습니다. [source_doc] | 자식 노드가 Failure를 반환할 때까지 순서대로 실행합니다. # Properties ##### inherited from CompositeNode: - **int32 ChildCount [ReadOnly]** 자식 노드의 개수입니다. ##### inherited from BTNode: - **boolean ExclusiveExecutionWhenRunning [Deprecated]** 더는 사용하지 않는 프로퍼티입니다. - **func InitFunction** 초기화 시점에 호출되는 함수입니다. - **st

[task] | code [pass] | ❌ 탈락 [title] | SelectorNode [question] | `SelectorNode`와 `BTNode`를 활용하여, 첫 번째 자식 노드가 실패하면 두 번째 자식 노드가 실행되도록 자식 노드를 순서대로 연결하고 `AttachChild` 메서드를 사용하여 노드를 추가하는 스크립트를 작성해줘. [answer] | `SelectorNode`는 자식 노드들을 순서대로 실행하며, **첫 번째 Success**를 반환하는 노드를 만나면 나머지 자식 노드를 실행하지 않고 즉시 Success를 반환합니다. 즉, 첫 번째 자식 노드가 실패(Failure)하면 두 번째 자식 노드가 실행되는 동작은 `SelectorNode`의 기본 동작입니다. 아래 스크립트는 `SelectorNode`를 생성하고, 두 개의 자식 노드(`BTNode` 파생 클래스 인스턴스)를 `AttachChild` 메서드를 사용하여 순서대로 연결하는 예시입니다. 참고: - `Selec [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=1 coherence=3 complexity=2 verbosity=2 [judge_reason] | mLua 스크립트 규칙에 없는 C# 스타일 메서드 선언부와 존재하지 않는 OnInit, OnBehave, MoveToNode 등 API를 지어냈음 [source_doc] | 자식 노드가 Success를 반환할 때까지 순서대로 실행합니다. # Properties ##### inherited from CompositeNode: - **int32 ChildCount [ReadOnly]** 자식 노드의 개수입니다. ##### inherited from BTNode: - **boolean ExclusiveExecutionWhenRunning [Deprecated]** 더는 사용하지 않는 프로퍼티입니다. - **func InitFunction** 초기화 시점에 호출되는 함수입니다. - **st

[task] | two_turn [pass] | ✅ 통과 [title] | TransformComponent [question] | 2차원 환경에서 엔티티를 회전시킬 때 Rotation 속성과 Rotate 메서드 중 어떤 것이 더 적합한가요? [answer] | 2차원 환경에서 엔티티를 회전시킬 때는 `Rotate` 메서드가 더 적합합니다. `Rotation` 속성은 오일러 각(Euler Angles)을 사용하는 `Vector3` 타입입니다. 2차원에서는 Z축을 이용하여 회전할 수 있지만, 값이 변경될 때마다 벡터 객체를 생성하고 대입해야 하는 번거로움이 있습니다. 반면 `Rotate` 메서드는 각도(float)를 인자로 받아 엔티티를 반시계 방향으로 회전시키는 전용 메서드로, 2차원 회전 의도를 명확히 표현하고 코드 가독성이 좋습니다. **사용 예시:** ```lua Method: [followup] | Rotate 메서드로 회전시킨 후 Z축 각도 값을 숫자로 가져와서 로직에 활용하고 싶은데, 이를 위해 어떤 속성을 읽어야 하나요? [followup_answer] | `Rotate` 메서드로 회전시킨 후 Z축 각도 값을 숫자로 가져오려면 `ZRotation` 속성을 읽어야 합니다. `ZRotation`은 `float` 타입으로 엔티티의 오일러 각 회전 값 중 Z축의 값만 반환하므로, 2차원 환경에서 각도를 숫자로 로직에 활용하기에 가장 적합합니다. ```lua Method: [server] void GetZAngle() { -- 엔티티를 45도 회전 self.Entity.TransformComponent:Rotate(45) -- Z축 각도 값을 숫자로 가져옴 [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서의 Rotate 메서드와 Rotation 속성 정의에 정확히 부합하며, 2차원 환경에서의 사용 사례와 코드 예제도 mLua 규칙에 맞게 적절히 제시되었습니다. [source_doc] | 엔티티의 위치, 회전, 크기를 나타냅니다. # Properties - **Vector3 Position [Sync]** 엔티티의 부모를 기준으로 좌표를 나타냅니다. - **Quaternion QuaternionRotation [Sync] [HideFromInspector]** 엔티티의 회전 값을 Quaternion으로 나타냅니다. - **Vector3 Rotation** 엔티티의 회전 값을 오일러 각으로 나타냅니다. 2차원에서는 Z축을 이용하여 회전할 수 있습니다. QuaternitonRotation에 의해 동기화됩니

[task] | single_turn [pass] | ✅ 통과 [title] | CameraSwitchEvent [question] | 카메라 전환 시 이전 대상과 새 대상을 각각 어떻게 참조해야 하나요? [answer] | `CameraSwitchEvent` 이벤트가 발생하면, 해당 이벤트 객체(`event`)의 프로퍼티를 통해 이전 대상과 새 대상을 참조할 수 있습니다. * **이전 대상**: `event.PreviousComponent` * 이전에 카메라가 비추고 있던 `CameraComponent`입니다. * 처음 카메라 전환이 일어나는 경우 등 이전 대상이 없으면 `nil`일 수 있습니다. * **새 대상**: `event.SwitchedComponent` * 카메라가 전환된 새로운 `CameraComp [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 CameraSwitchEvent 프로퍼티(PreviousComponent, SwitchedComponent)와 nil 가능 여부를 정확히 설명하고, mLua 규칙에 부합하는 이벤트 핸들러 예제를 제공하여 질문에 완벽하게 답하고 있음. [source_doc] | 카메라가 비추는 대상이 전환될 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * CameraService <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **CameraComponent PreviousComponent** 이전에 비추던 대상 CameraCompone

[task] | single_turn [pass] | ✅ 통과 [title] | Sprite [question] | 아틀라스 텍스처에 포함된 개별 스프라이트의 경우, 텍스처 내에서의 정확한 위치와 크기를 파악하기 위해 어떤 속성을 봐야 하나요? [answer] | 아틀라스 텍스처에 포함된 개별 스프라이트의 텍스처 내 위치와 크기를 파악하려면 `OffsetInTexture` 속성을 확인해야 합니다. `OffsetInTexture`는 `Vector2Int` 타입의 읽기 전용(ReadOnly) 속성으로, 아틀라스 텍스처에서 해당 스프라이트가 시작되는 위치와 크기를 기록하고 있습니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 OffsetInTexture 속성의 타입과 기능을 정확히 설명하여 질문에 적절히 답했습니다. [source_doc] | MSW의 이미지를 표현하기 위한 메타 정보(피벗, 보더 등)와 이미지의 텍스쳐 바이너리를 담고 있는 클래스입니다. # Properties - **Vector4 Border [ReadOnly]** UI에서 Sprite를 Sliced 방식으로 렌더링할 때 사용하는 경곗값입니다. - **RectOffset Collision [ReadOnly]** 충돌 범위를 표현하는 aabb 박스입니다. - **ReadOnlyList<ReadOnlyList<Vector2Int>> Footholds [ReadOnly]** 엔티티가 올라설 수

[task] | single_turn [pass] | ✅ 통과 [title] | Sprite [question] | 엔티티가 특정 지형 위에 올라서도록 하려면 Sprite의 어떤 속성을 확인해야 하며, Footholds는 어떤 데이터 타입으로 구성되어 있나요? [answer] | 엔티티가 특정 지형 위에 올라서도록 하려면 Sprite의 **Footholds** 속성을 확인해야 합니다. Footholds는 엔티티가 올라설 수 있는 발판을 구성하는 컨벡스(볼록) 정보를 담고 있습니다. Footholds의 데이터 타입은 `ReadOnlyList<ReadOnlyList<Vector2Int>>`로 구성되어 있습니다. 이는 벡터 2D 정수(`Vector2Int`) 목록으로 이루어진 또 다른 목록(리스트의 리스트) 형태이며, 읽기 전용(ReadOnly)으로 접근할 수 있습니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 Footholds의 용도와 데이터 타입을 정확하고 간결하게 설명하여 질문에 완벽하게 부합합니다. [source_doc] | MSW의 이미지를 표현하기 위한 메타 정보(피벗, 보더 등)와 이미지의 텍스쳐 바이너리를 담고 있는 클래스입니다. # Properties - **Vector4 Border [ReadOnly]** UI에서 Sprite를 Sliced 방식으로 렌더링할 때 사용하는 경곗값입니다. - **RectOffset Collision [ReadOnly]** 충돌 범위를 표현하는 aabb 박스입니다. - **ReadOnlyList<ReadOnlyList<Vector2Int>> Footholds [ReadOnly]** 엔티티가 올라설 수

[task] | single_turn [pass] | ✅ 통과 [title] | Sprite [question] | Sprite.LoadAndWait() 함수를 호출했는데 오류나 경고가 뜨면 어떤 새로운 함수로 대체해야 하나요? [answer] | `Sprite.LoadAndWait()`는 더 이상 사용되지 않는 비추천(Deprecated) 함수입니다. 대신 `ResourceService`의 `LoadSpriteAndWait(string)` 함수를 사용해야 합니다. 참고 문서에 제공된 mLua API 목록에는 `ResourceService`의 `LoadSpriteAndWait` 메서드 정의나 정확한 호출 예제 코드가 포함되어 있지 않아, 해당 함수의 구체적인 파라미터나 반환값 문법을 제시할 수 없습니다. 따라서 문서에 근거하여 대체 함수의 이름만 안내해 드립니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 Deprecated 안내와 대체 함수명을 정확히 인용하고, 문서에 없는 세부 문법은 지어내지 않아 정확하고 도움이 되는 답변입니다. [source_doc] | MSW의 이미지를 표현하기 위한 메타 정보(피벗, 보더 등)와 이미지의 텍스쳐 바이너리를 담고 있는 클래스입니다. # Properties - **Vector4 Border [ReadOnly]** UI에서 Sprite를 Sliced 방식으로 렌더링할 때 사용하는 경곗값입니다. - **RectOffset Collision [ReadOnly]** 충돌 범위를 표현하는 aabb 박스입니다. - **ReadOnlyList<ReadOnlyList<Vector2Int>> Footholds [ReadOnly]** 엔티티가 올라설 수

[task] | code [pass] | ✅ 통과 [title] | TransformComponent [question] | TransformComponent의 ZRotation 프로퍼티와 AngularSpeed 속성을 사용하여 서버에서만 실행되며 매 프레임마다 정해진 각속도로 엔티티를 회전시키는 스크립트를 작성해줘 [answer] | ```lua Property: [None] number AngularSpeed = 360 Method: [server only] void OnUpdate (number delta) { local transform = self.Entity.TransformComponent local zRotation = transform.ZRotation transform.ZRotation = zRotation + (self.AngularSpeed * delta) } ``` [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 질문에서 요구한 ZRotation 기반 회전 스크립트를 참고 문서의 예제와 일치하도록 정확하고 간결하게 제시했습니다. [source_doc] | 다음은 `ZRotation` 프로퍼티를 이용해 Entity를 일정한 속력으로 회전시키는 예제입니다. ```lua Property: [None] number AngularSpeed = 360 Method: [server only] void OnUpdate (number delta) { local transform = self.Entity.TransformComponent local zRotation = transform.ZRotation transform.ZRotation = zRotation + (self.Angular

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