← 목록

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

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

[task] | single_turn [pass] | ⏳ 미판정 [title] | PulleyJointComponent [question] | Ratio 값을 1로 설정했을 때와 2로 설정했을 때 두 강체의 이동 거리는 어떻게 달라지나요? [answer] | PulleyJointComponent의 `AddJoint` 메서드와 `SetRatio` 메서드에서 `ratio` 값은 두 강체 사이의 이동 거리의 비율을 결정합니다. 문서에 명시된 동작 원리(도르래처럼 이동)와 물리 엔진의 일반적인 Pulley Joint 동작 원리에 따르면: 1. **Ratio = 1** 일 때: * 두 강체는 **1:1** 비율로 이동합니다. * 한쪽 강체가 지면 앵커(groundAnchor) 기준으로 `d` 만큼 이동하면, 다른 쪽 강체도 반대 방향으로 `d` 만큼 이동합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | PulleyJoint를 생성, 삭제합니다. 연결된 두 강체가 도르래처럼 이동합니다. # Properties - **SyncList<PulleyJoint> Joints [Sync] [ReadOnly]** Joint 정보를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromInspector]** 계층 구조상에서 이 컴포넌트가

[task] | code [pass] | ⏳ 미판정 [title] | PhysicsSimulatorComponent [question] | 5초마다 PhysicsSimulatorComponent의 Paused 상태를 true와 false로 번갈아 설정하여 물리 시뮬레이션을 주기적으로 일시정지 및 재개하는 스크립트를 작성해줘. [answer] | `_TimerService:SetTimerOnce`를 사용하여 5초 간격으로 `Paused` 상태를 번갈아 변경하는 스크립트입니다. ```lua Property: [None] boolean IsPaused = false Method: [server only] void OnBeginPlay() { -- 초기 5초 후 타이머 시작 _TimerService:SetTimerOnce(function() self:TogglePhysicsPause() end, 5) } Method: [server onl [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 맵에 물리 법칙을 적용합니다. 물리 연산과 관련된 설정을 조절할 수 있습니다. # Properties - **Vector2 Gravity [Sync]** 물리 연산의 중력 값을 설정합니다. - **boolean Paused [Sync]** 물리 연산의 일시정지 여부를 설정합니다. - **Vector2 WorldBounds [Sync] [ReadOnly]** 물리 연산 범위를 설정합니다. 엔티티가 범위를 벗어나면 물리 연산을 하지 않습니다. 예를 들어, 값을 (100, 100)으로 설정하면 원점(0, 0)을 중심으로 가

[task] | single_turn [pass] | ⏳ 미판정 [title] | PulleyJointComponent [question] | Joints 프로퍼티가 Sync 속성을 가진 이유와 클라이언트에서의 동작 방식은 어떤가요? [answer] | `PulleyJointComponent`의 `Joints` 프로퍼티가 `Sync` 속성을 가지는 이유는 서버에서 물리 시뮬레이션 및 조인트 상태 변경이 발생했을 때, 해당 변경 내용이 클라이언트로 자동으로 동기화되어야 하기 때문입니다. 도르래(풀리) 조인트는 연결된 두 강체의 위치와 움직임에 직접적인 영향을 주므로, 클라이언트에서도 서버와 동일한 물리 상태를 유지해야 시각적으로 자연스러운 모션이 표시됩니다. 클라이언트에서의 동작 방식은 다음과 같습니다: 1. **읽기 전용(ReadOnly) 접근**: `Joints`는 `[Rea [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | PulleyJoint를 생성, 삭제합니다. 연결된 두 강체가 도르래처럼 이동합니다. # Properties - **SyncList<PulleyJoint> Joints [Sync] [ReadOnly]** Joint 정보를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromInspector]** 계층 구조상에서 이 컴포넌트가

[task] | single_turn [pass] | ⏳ 미판정 [title] | PulleyJointComponent [question] | SetCollideConnected를 false로 설정하면 연결된 두 강체 사이에 충돌이 어떻게 처리되나요? [answer] | `SetCollideConnected` 메서드에 `false`를 전달하면, 해당 인덱스에 연결된 두 강체(엔티티) 사이의 충돌이 무시됩니다. 즉, 도르래(PulleyJoint)로 연결된 두 개체가 물리적으로 겹치거나 접촉하더라도 서로 밀어내거나 반사되는 등 충돌 반응이 발생하지 않습니다. 참고 문서에 따르면 이 메서드의 시그니처는 다음과 같습니다: `void SetCollideConnected(int32 index, boolean collideConnected)` 여기서 `collideConnected`가 `false`일 때 충 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | PulleyJoint를 생성, 삭제합니다. 연결된 두 강체가 도르래처럼 이동합니다. # Properties - **SyncList<PulleyJoint> Joints [Sync] [ReadOnly]** Joint 정보를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromInspector]** 계층 구조상에서 이 컴포넌트가

[task] | two_turn [pass] | ⏳ 미판정 [title] | PhysicsColliderComponent [question] | PhysicsColliderComponent의 충돌 그룹(CollisionGroup)과 충돌 타입(ColliderType) 설정 시 고려해야 할 사항이 있나요? [answer] | 제공된 문서의 정보에 기반하여 `PhysicsColliderComponent`의 `CollisionGroup`과 `ColliderType` 설정 시 고려해야 할 사항을 설명합니다. ### 1. ColliderType (충돌 타입) 설정 시 고려 사항 `ColliderType` 프로퍼티는 충돌체의 모양을 설정하며, 이 값에 따라 유효한 다른 프로퍼티가 달라집니다. * **Polygon (다각형) 사용 시**: * `ColliderType`을 `Polygon`으로 설정해야만 **`PolygonPoints`** 프로퍼 [followup] | ColliderType이 Polygon일 때 PolygonPoints의 SyncList<Vector2> 값을 서버와 클라이언트에서 각각 어떻게 동기화하며, ClientOnly 속성이 true일 때 이 물리 연산 결과가 다른 클라이언트와 동기화되지 않는 구체적 영향은 무엇인가요? [followup_answer] | 제공된 문서에 근거하여 질문에 답변합니다. ### 1. PolygonPoints의 동기화 방식 `PolygonPoints` 프로퍼티는 `SyncList<Vector2>` 타입이며 **[Sync]** 속성을 가지고 있습니다. * **기본 동작 (ClientOnly가 false인 경우):** * Server 공간에서 함수 사용 및 Property 변경이 가능합니다. * Server에서 `PolygonPoints` 값을 변경하면, 이 변경 사항은 **다른 Clients와 동기화**됩니다. * 즉, [scores] | [judge_reason] | [source_doc] | 물리 강체의 모양을 설정하고 다른 강체와 충돌 시 이벤트를 발생시킵니다. 자동으로 부모 또는 자신의 PhysicsRigidbodyComponent에 연결됩니다. 연결된 PhysicsRigidbodyComponent가 없으면 Static 강체로 취급됩니다. # Properties - **Vector2 BoxSize [Sync]** Box Collider 크기를 설정합니다. - **float CircleRadius [Sync]** Circle Collider의 반지름 길이를 설정합니다. - **boolean ClientOnl

[task] | instruction_following [pass] | ⏳ 미판정 [title] | SideviewbodyComponent [question] | EnableDownJump와 DownJumpSpeed 속성의 관계를 3문장 이내로 설명하세요. [answer] | `EnableDownJump` 속성이 true로 설정되어야만 아래 점프 기능이 활성화됩니다. `DownJumpSpeed` 속성은 아래 점프 시 캐릭터가 위로 튀어 오르는 속력을 결정하며, 값이 클수록 더 높게 점프합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 횡스크롤 방식의 이동 및 점프, 렉트 타일과의 충돌 기능을 제공합니다. 중력의 영향을 받으며, 가·감속 영향은 받지 않습니다. 현재 타일맵 모드가 SideViewRectTileMap일 때 동작합니다. # Properties - **boolean ApplyClimbableRotation [Sync]** true인 경우 회전하거나 기울어진 사다리를 탄 캐릭터는 사다리의 모습을 따릅니다. false인 경우 캐릭터는 사다리의 기울기, 회전에 영향을 받지 않습니다. - **float DownJumpSpeed [Sync]** 아래

[task] | instruction_following [pass] | ⏳ 미판정 [title] | SideviewbodyComponent [question] | SideviewbodyComponent의 Properties를 표로 정리하되, Property 이름과 타입만 포함하고 설명은 생략하세요. [answer] | SideviewbodyComponent의 Properties는 다음과 같습니다. | Property 이름 | 타입 | | :--- | :--- | | ApplyClimbableRotation | boolean | | DownJumpSpeed | float | | EnableDownJump | boolean | | JumpDrag | float | | JumpSpeed | float | | MoveVelocity | Vector2 | | Enable | boolean | | EnableInHierarchy | boolean | | [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 횡스크롤 방식의 이동 및 점프, 렉트 타일과의 충돌 기능을 제공합니다. 중력의 영향을 받으며, 가·감속 영향은 받지 않습니다. 현재 타일맵 모드가 SideViewRectTileMap일 때 동작합니다. # Properties - **boolean ApplyClimbableRotation [Sync]** true인 경우 회전하거나 기울어진 사다리를 탄 캐릭터는 사다리의 모습을 따릅니다. false인 경우 캐릭터는 사다리의 기울기, 회전에 영향을 받지 않습니다. - **float DownJumpSpeed [Sync]** 아래

[task] | code [pass] | ⏳ 미판정 [title] | PhysicsRigidbodyComponent [question] | PhysicsRigidbodyComponent의 ApplyForce와 GetPosition 메서드를 활용해 월드 좌표 (100, 200) 지점에 가해지는 힘의 방향을 현재 강체 위치 기준으로 계산해 적용하는 스크립트를 작성해줘 [answer] | PhysicsRigidbodyComponent의 `GetPosition()`과 `ApplyForce()` 메서드를 사용하여, 월드 좌표 (100, 200) 지점에서 현재 강체 위치를 향해(또는 그 지점으로) 힘을 가하는 스크립트를 작성합니다. 일반적으로 특정 지점(`worldPoint`)에 힘을 가하려면 `ApplyForce(Vector2 force, Vector2 worldPoint)` 오버로드를 사용합니다. 문제에서 "월드 좌표 (100, 200) 지점에 가해지는 힘의 방향을 현재 강체 위치 기준으로 계산"한다고 했으므로, 힘 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | - **void ApplyAngularImpulse(float impulse)** 강체에 반시계 방향으로(CCW) 각 충격량을 적용합니다. - **void ApplyForce(Vector2 force)** 강체의 무게 중심에 특정 방향으로 힘을 가합니다. - **void ApplyForce(Vector2 force, Vector2 worldPoint)** 강체에 월드 상 특정 위치에서 특정 방향으로 힘을 가합니다. - **void ApplyLinearImpulse(Vector2 impulse)** 강체의 무게 중심에

[task] | instruction_following [pass] | ⏳ 미판정 [title] | SideviewbodyComponent [question] | GetUnderfootTile() 메서드의 동작 방식을 단계별 번호 목록으로 설명하되, 경계 처리 규칙을 반드시 포함하세요. [answer] | `GetUnderfootTile()` 메서드의 동작 방식은 다음과 같습니다. 1. 캐릭터가 현재 발밑에 밟고 있는 타일(사각형 타일)을 감지합니다. 2. 감지된 타일에 대한 정보(`RectTileInfo`)를 반환합니다. 3. 발밑에 밟고 있는 타일이 하나도 없는 경우 `nil`을 반환합니다. 4. 수평으로 나란히 배치된 두 타일의 경계 위에 캐릭터가 있는 경우, 왼쪽에 위치한 타일을 반환합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 횡스크롤 방식의 이동 및 점프, 렉트 타일과의 충돌 기능을 제공합니다. 중력의 영향을 받으며, 가·감속 영향은 받지 않습니다. 현재 타일맵 모드가 SideViewRectTileMap일 때 동작합니다. # Properties - **boolean ApplyClimbableRotation [Sync]** true인 경우 회전하거나 기울어진 사다리를 탄 캐릭터는 사다리의 모습을 따릅니다. false인 경우 캐릭터는 사다리의 기울기, 회전에 영향을 받지 않습니다. - **float DownJumpSpeed [Sync]** 아래

[task] | instruction_following [pass] | ⏳ 미판정 [title] | RevoluteJointComponent [question] | RevoluteJointComponent의 SetMotorSpeed 메서드에서 첫 번째 인자 1과 두 번째 인자 10, -10, 0이 각각 어떤 역할을 하는지 3문장 이내로 설명하세요. [answer] | 첫 번째 인자 1은 모터를 식별하는 인덱스 역할을 합니다. 두 번째 인자 10, -10, 0은 각각 시계방향, 반시계방향 회전 속도와 정지를 나타내는 모터 속도 값입니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | W, S를 누르면 TargetEntityRef로 지정한 Entity를 회전시키는 예제입니다. ```lua Method: [server] void GoUp ( ) { self.Entity.RevoluteJointComponent:SetMotorSpeed(1, 10) } [server] void GoDown ( ) { self.Entity.RevoluteJointComponent:SetMotorSpeed(1, -10) } [server] void Stop ( ) { self.Entity.RevoluteJointComponen

[task] | single_turn [pass] | ⏳ 미판정 [title] | RevoluteJointComponent [question] | RevoluteJointComponent에서 AddJoint 함수가 -1을 반환할 때 어떤 원인이 가장 흔한지 궁금합니다. [answer] | 제공된 문서에는 `AddJoint` 함수가 `-1`을 반환하는 구체적인 원인이나 실패 조건이 명시되어 있지 않습니다. 문서에서 확인할 수 있는 정보만으로는 `-1` 반환 시의 원인을 특정할 수 없으며, 해당 함수의 설명은 "Joint를 추가합니다. 성공 시 index, 실패 시 -1을 반환합니다"로만 기재되어 있습니다. 따라서 특정 실패 원인을 단정 짓는 것은 불가능합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | RevoluteJoint를 생성, 삭제합니다. 연결된 강체끼리의 상대적 회전을 제어합니다. # Properties - **SyncList<RevoluteJoint> Joints [Sync] [ReadOnly]** Joint 정보를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromInspector]** 계층 구조상에서 이

[task] | single_turn [pass] | ⏳ 미판정 [title] | PrismaticJointComponent [question] | PrismaticJointComponent 는 슬라이딩 운동만 가능한데, 회전이나 자유로운 3D 이동이 필요한 경우 어떤 다른 물리 joint 를 사용해야 하는지 알려주세요. [answer] | 제공된 문서에는 `PrismaticJointComponent` 외에 `RevoluteJointComponent`와 `WheelJointComponent`의 사용 예제만 포함되어 있습니다. 문서에 따르면, 회전 운동이 필요한 경우 **`RevoluteJointComponent`**를 사용해야 합니다. `RevoluteJointComponent`는 `SetMotorSpeed` 메서드를 통해 모터 속도를 조절하여 회전 운동을 제어하는 방식으로 동작합니다. 다만, 자유로운 3D 이동(예: DistanceJoint 또는 BallJoint [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | ```lua Method: [server] void GoUp () { self.Entity.PrismaticJointComponent:SetMotorSpeed(1, 3) } [server] void GoDown () { self.Entity.PrismaticJointComponent:SetMotorSpeed(1, -3) } Event Handler: [service: InputService] HandleKeyDownEvent (KeyDownEvent event) { --------------- Native Event Sen

[task] | two_turn [pass] | ⏳ 미판정 [title] | PhysicsSimulatorComponent [question] | PhysicsSimulatorComponent의 주요 속성과 물리 연산 설정 방법을 알려주세요 [answer] | `PhysicsSimulatorComponent`는 맵에 물리 법칙을 적용하고 물리 연산 관련 설정을 조절하는 데 사용되는 컴포넌트입니다. 주요 속성과 물리 연산 설정 방법은 다음과 같습니다. ### 1. 주요 속성 (Properties) * **Gravity** (`Vector2`, `[Sync]`) * 물리 연산의 중력 값을 설정합니다. * 예: `Vector2(0, 0)`으로 설정하면 중력이 없게 됩니다. * **Paused** (`boolean`, `[Sync]`) * 물리 연산의 [followup] | WorldBounds 속성이 (100, 100)으로 설정되어 있을 때, 엔티티가 원점에서 얼마나 벗어나면 물리 연산이 중단되는지 구체적인 좌표 범위를 알려주세요 [followup_answer] | `WorldBounds` 속성이 `(100, 100)`으로 설정되어 있을 때, 물리 연산이 적용되는 범위는 **원점(0, 0)을 중심으로 가로 200, 세로 200 크기의 사각형 영역**입니다. 구체적인 좌표 범위는 다음과 같습니다: * **X축 범위:** -100 ~ 100 * **Y축 범위:** -100 ~ 100 따라서 엔티티의 위치가 **X 좌표가 -100보다 작거나 100보다 크고, Y 좌표가 -100보다 작거나 100보다 큰** 경우, 즉 이 사각형 영역 바깥으로 벗어나면 물리 연산이 중단됩니다. **물리 [scores] | [judge_reason] | [source_doc] | 맵에 물리 법칙을 적용합니다. 물리 연산과 관련된 설정을 조절할 수 있습니다. # Properties - **Vector2 Gravity [Sync]** 물리 연산의 중력 값을 설정합니다. - **boolean Paused [Sync]** 물리 연산의 일시정지 여부를 설정합니다. - **Vector2 WorldBounds [Sync] [ReadOnly]** 물리 연산 범위를 설정합니다. 엔티티가 범위를 벗어나면 물리 연산을 하지 않습니다. 예를 들어, 값을 (100, 100)으로 설정하면 원점(0, 0)을 중심으로 가

[task] | instruction_following [pass] | ⏳ 미판정 [title] | RevoluteJointComponent [question] | W키와 S키 입력 시 실행되는 메서드 이름과 해당 메서드 내부에서 호출되는 SetMotorSpeed의 두 번째 인자 값을 표로 정리해서 나열하세요. [answer] | W키와 S키 입력 시 실행되는 메서드와 `SetMotorSpeed`의 두 번째 인자 값은 다음과 같습니다. | 입력 키 | 실행 메서드 | SetMotorSpeed 두 번째 인자 | | :--- | :--- | :--- | | W | `GoUp` | 10 | | S | `GoDown` | -10 | [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | W, S를 누르면 TargetEntityRef로 지정한 Entity를 회전시키는 예제입니다. ```lua Method: [server] void GoUp ( ) { self.Entity.RevoluteJointComponent:SetMotorSpeed(1, 10) } [server] void GoDown ( ) { self.Entity.RevoluteJointComponent:SetMotorSpeed(1, -10) } [server] void Stop ( ) { self.Entity.RevoluteJointComponen

[task] | two_turn [pass] | ⏳ 미판정 [title] | PhysicsColliderComponent [question] | PhysicsColliderComponent의 기본 기능과 다른 강체와의 충돌 처리 방식에 대해 설명해 주세요. [answer] | # PhysicsColliderComponent 기본 기능 및 충돌 처리 ## 기본 기능 PhysicsColliderComponent는 물리 강체(Rigidbody)의 **모양**을 정의하고, 다른 강체와의 **충돌 시 이벤트를 발생**시키는 컴포넌트입니다. 주요 동작 원리는 다음과 같습니다. 1. **자동 연결**: 이 컴포넌트는 자동으로 부모 또는 자신의 `PhysicsRigidbodyComponent`에 연결됩니다. 2. **Static 강체 처리**: 연결된 `PhysicsRigidbodyComponent`가 없으면 [followup] | EnableContactEvent가 false로 설정되어 있을 때 PhysicsContactBeginEvent와 PhysicsContactEndEvent가 발생하지 않는 이유와, IsSensor가 true일 때 물리적 상호작용과 충돌 이벤트의 차이가 무엇인가요? [followup_answer] | ## EnableContactEvent가 false일 때 충돌 이벤트가 발생하지 않는 이유 `EnableContactEvent` 프로퍼티는 `PhysicsContactBeginEvent`와 `PhysicsContactEndEvent`의 **발생 여부 자체를 제어**하는 스위치입니다. * **true일 경우**: 두 이벤트가 정상적으로 발생하며, 이벤트 핸들러가 호출됩니다. * **false일 경우**: 두 이벤트가 **전혀 발생하지 않습니다.** 즉, 이 값이 `false`로 설정되어 있으면 물리적으로 충돌이 감지되더라 [scores] | [judge_reason] | [source_doc] | 물리 강체의 모양을 설정하고 다른 강체와 충돌 시 이벤트를 발생시킵니다. 자동으로 부모 또는 자신의 PhysicsRigidbodyComponent에 연결됩니다. 연결된 PhysicsRigidbodyComponent가 없으면 Static 강체로 취급됩니다. # Properties - **Vector2 BoxSize [Sync]** Box Collider 크기를 설정합니다. - **float CircleRadius [Sync]** Circle Collider의 반지름 길이를 설정합니다. - **boolean ClientOnl

[task] | instruction_following [pass] | ⏳ 미판정 [title] | SideviewbodyComponent [question] | HandleRectTileCollisionBeginEvent 내에서 벽 타일을 감지하는 조건에 사용되는 Normal 비교 연산자 두 개를 코드 블록 안에만 출력하세요. [answer] | ```lua Normal == Vector2.left or Normal == Vector2.right ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 측면에 닿은 벽 타일을 감지하는 예제입니다. ```lua Property: [None] table WallTile = {} Method: [client only] table GetWallTile () { return self.WallTile } Event Handler: [client only] [self] HandleRectTileCollisionBeginEvent (RectTileCollisionBeginEvent event) { ----------------- Native Emitter Info -----------

[task] | instruction_following [pass] | ⏳ 미판정 [title] | SpriteParticleComponent [question] | SpriteParticleComponent에서 Prewarm 프로퍼티가 true일 때의 동작을 3문장 이내로 [answer] | Prewarm 프로퍼티가 true로 설정되면 파티클이 처음 재생될 때 이미 재생되고 있었던 것과 같은 상태로 시작합니다. 이를 통해 파티클이 갑자기 나타나거나 빈 공간에서 시작되는 현상을 방지할 수 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 스프라이트 파티클 효과를 만드는 기능을 제공합니다. # Properties - **boolean ApplySpriteColor [Sync]** 파티클이 사용할 스프라이트에 Color 프로퍼티를 적용할지 여부를 설정합니다. 프로퍼티가 false일지라도 Color의 투명도 값은 적용됩니다. - **SpriteParticleType ParticleType [Sync]** 생성할 파티클의 타입을 설정합니다. - **string SpriteRUID [Sync]** 파티클로 사용할 SpriteRUID를 설정합니다. #####

[task] | single_turn [pass] | ⏳ 미판정 [title] | PhysicsSimulatorComponent [question] | Gravity 속성을 Vector2(0, 0)으로 변경하면 물리 연산이 즉시 멈추는 것이 아니라 중력이 사라진 상태로 엔티티가 어떻게 움직이게 되나요? [answer] | `PhysicsSimulatorComponent`의 `Gravity` 속성을 `Vector2(0, 0)`으로 설정하면 물리 연산 자체는 계속 진행되며, 중력 벡터가 0이 되어 엔티티에 중력 가속도가 더 이상 적용되지 않습니다. 따라서 엔티티는 다음과 같이 움직입니다. 1. **중력 영향 제거**: 엔티티는 더 이상 아래로(또는 중력 방향) 가속되지 않습니다. 2. **관성 유지**: 현재 엔티티가 가지고 있는 속도(Linear Velocity)가 있다면, 마찰력이나 공기 저항 등 다른 물리 효과가 없다면 그 속도로 직선 운동 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 맵에 물리 법칙을 적용합니다. 물리 연산과 관련된 설정을 조절할 수 있습니다. # Properties - **Vector2 Gravity [Sync]** 물리 연산의 중력 값을 설정합니다. - **boolean Paused [Sync]** 물리 연산의 일시정지 여부를 설정합니다. - **Vector2 WorldBounds [Sync] [ReadOnly]** 물리 연산 범위를 설정합니다. 엔티티가 범위를 벗어나면 물리 연산을 하지 않습니다. 예를 들어, 값을 (100, 100)으로 설정하면 원점(0, 0)을 중심으로 가

[task] | single_turn [pass] | ⏳ 미판정 [title] | RevoluteJointComponent [question] | DestroyJoint를 호출한 후 Joints 리스트의 인덱스가 어떻게 재배열되는지, 아니면 빈 공간이 남는지 궁금합니다. [answer] | 제공된 문서에는 `DestroyJoint` 메서드를 호출했을 때 `Joints` 리스트의 인덱스가 어떻게 재배열되는지, 또는 빈 공간이 남는지에 대한 정보가 포함되어 있지 않습니다. 문서에는 `DestroyJoint(int32 index)` 메서드가 "순번이 index에 해당하는 Joint를 제거합니다"라고만 설명되어 있을 뿐, 제거 후 남은 Joint들의 인덱스 변경 규칙(예: 뒤의 항목이 앞으로 이동하는지, 또는 인덱스 구멍이 생기는지)에 대한 구체적인 설명이 없습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | RevoluteJoint를 생성, 삭제합니다. 연결된 강체끼리의 상대적 회전을 제어합니다. # Properties - **SyncList<RevoluteJoint> Joints [Sync] [ReadOnly]** Joint 정보를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromInspector]** 계층 구조상에서 이

[task] | instruction_following [pass] | ⏳ 미판정 [title] | SpriteParticleComponent [question] | SpriteParticleComponent가 상속받은 BaseParticleComponent의 메서드만 코드만 출력하고 설명은 주석으로 [answer] | ```lua Method: [client only] void Play() { -- 파티클을 재생합니다. } Method: [client only] void Stop() { -- 파티클 재생을 멈춥니다. } ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 스프라이트 파티클 효과를 만드는 기능을 제공합니다. # Properties - **boolean ApplySpriteColor [Sync]** 파티클이 사용할 스프라이트에 Color 프로퍼티를 적용할지 여부를 설정합니다. 프로퍼티가 false일지라도 Color의 투명도 값은 적용됩니다. - **SpriteParticleType ParticleType [Sync]** 생성할 파티클의 타입을 설정합니다. - **string SpriteRUID [Sync]** 파티클로 사용할 SpriteRUID를 설정합니다. #####

[task] | instruction_following [pass] | ⏳ 미판정 [title] | RevoluteJointComponent [question] | KeyDownEvent와 KeyUpEvent 핸들러에서 self:GoUp(), self:GoDown(), self:Stop() 호출 로직을 포함하는 전체 Event Handler 코드를 출력하되, 설명은 주석으로만 작성하세요. [answer] | ```lua Event Handler: [service: InputService] HandleKeyDownEvent (KeyDownEvent event) { local key = event.key if key == KeyboardKey.W then self:GoUp() elseif key == KeyboardKey.S then self:GoDown() end } [service: InputService] HandleKeyUpEvent (KeyUpEvent event) { self:Stop() } ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | W, S를 누르면 TargetEntityRef로 지정한 Entity를 회전시키는 예제입니다. ```lua Method: [server] void GoUp ( ) { self.Entity.RevoluteJointComponent:SetMotorSpeed(1, 10) } [server] void GoDown ( ) { self.Entity.RevoluteJointComponent:SetMotorSpeed(1, -10) } [server] void Stop ( ) { self.Entity.RevoluteJointComponen

[task] | code [pass] | ⏳ 미판정 [title] | PhysicsSimulatorComponent [question] | PhysicsSimulatorComponent의 WorldBounds 값을 (100, 100)으로 설정하고, 엔티티가 이 범위를 벗어나면 해당 엔티티의 물리 연산을 중단시키기 위해 Enable을 false로 설정하는 로직을 포함한 스크립트를 작성해줘. [answer] | `PhysicsSimulatorComponent`의 `WorldBounds` 프로퍼티는 물리 연산 범위를 설정하는 용도로만 사용되며, 엔티티가 범위를 벗어나는 것을 감지하거나 해당 엔티티의 물리 연산을 중단시키는 기능이 제공되지 않습니다. 또한, `PhysicsSimulatorComponent`에는 엔티티의 위치를 확인하거나 범위를 벗어나는 이벤트를 수신하는 메서드나 이벤트 핸들러가 정의되어 있지 않습니다. 따라서 주어진 참고 문서에 포함된 API와 기능만으로는 "엔티티가 범위를 벗어나면 물리 연산을 중단시키는 로직"을 구현할 수 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 맵에 물리 법칙을 적용합니다. 물리 연산과 관련된 설정을 조절할 수 있습니다. # Properties - **Vector2 Gravity [Sync]** 물리 연산의 중력 값을 설정합니다. - **boolean Paused [Sync]** 물리 연산의 일시정지 여부를 설정합니다. - **Vector2 WorldBounds [Sync] [ReadOnly]** 물리 연산 범위를 설정합니다. 엔티티가 범위를 벗어나면 물리 연산을 하지 않습니다. 예를 들어, 값을 (100, 100)으로 설정하면 원점(0, 0)을 중심으로 가

[task] | single_turn [pass] | ⏳ 미판정 [title] | PrismaticJointComponent [question] | PrismaticJointComponent의 Joints 프로퍼티가 ReadOnly로 표시되어 있어 직접 수정할 수 없는 것 같은데, 이 값들을 변경하려면 어떤 메서드를 사용해야 하는지 알려주세요. [answer] | `PrismaticJointComponent`의 `Joints` 프로퍼티는 `ReadOnly` 속성이 있어 직접 접근하여 수정할 수 없습니다. 따라서 Joint의 각 값(앵커, 축, 이동 제한, 모터 설정 등)을 변경하려면 `Joints` 리스트에 직접 값을 대입하는 대신, 해당 Joint의 순번(`index`)을 인수로 받는 개별 `Set` 메서드를 사용해야 합니다. `AddJoint` 메서드로 Joint를 추가할 때 반환되는 값이 성공 시 해당 Joint의 `index`(순번)이므로, 이 `index`를 기억해 두었다가 아래 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | PrismaticJoint를 생성, 삭제할 수 있습니다. 연결된 강체가 특정 축 방향으로만 상대적 이동하도록 제한할 수 있습니다. # Properties - **SyncList<PrismaticJoint> Joints [Sync] [ReadOnly]** Joint의 정보를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromIn

[task] | single_turn [pass] | ⏳ 미판정 [title] | RevoluteJointComponent [question] | AddJoint에서 localAnchorA와 localAnchorB가 각각 어떤 엔티티를 기준으로 하는 좌표인지 명확히 설명해 줄 수 있나요? [answer] | 제공된 문서 내용을 기준으로 `RevoluteJointComponent`의 `AddJoint` 메서드에서 `localAnchorA`와 `localAnchorB`가 각각 어떤 엔티티를 기준으로 하는 좌표인지 **명확히 정의된 설명은 없습니다.** 문서에는 `AddJoint(Entity targetEntity, Vector2 localAnchorA, Vector2 localAnchorB)`의 시그니처와 "Joint를 추가합니다"라는 기능 설명, 그리고 매개변수의 이름만 제시되어 있을 뿐, `localAnchorA`가 현재 엔티티(`s [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | RevoluteJoint를 생성, 삭제합니다. 연결된 강체끼리의 상대적 회전을 제어합니다. # Properties - **SyncList<RevoluteJoint> Joints [Sync] [ReadOnly]** Joint 정보를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromInspector]** 계층 구조상에서 이

[task] | instruction_following [pass] | ⏳ 미판정 [title] | SpriteParticleComponent [question] | SpriteParticleComponent의 고유 프로퍼티 3가지를 표로 정리해서 [answer] | SpriteParticleComponent의 고유 프로퍼티 3가지는 다음과 같습니다. | 프로퍼티 이름 | 타입 | 설명 | | :--- | :--- | :--- | | `ApplySpriteColor` | `boolean` | 파티클이 사용할 스프라이트에 `Color` 프로퍼티를 적용할지 여부를 설정합니다. 프로퍼티가 `false`일지라도 `Color`의 투명도 값은 적용됩니다. | | `ParticleType` | `SpriteParticleType` | 생성할 파티클의 타입을 설정합니다. | | `SpriteRUID` | ` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 스프라이트 파티클 효과를 만드는 기능을 제공합니다. # Properties - **boolean ApplySpriteColor [Sync]** 파티클이 사용할 스프라이트에 Color 프로퍼티를 적용할지 여부를 설정합니다. 프로퍼티가 false일지라도 Color의 투명도 값은 적용됩니다. - **SpriteParticleType ParticleType [Sync]** 생성할 파티클의 타입을 설정합니다. - **string SpriteRUID [Sync]** 파티클로 사용할 SpriteRUID를 설정합니다. #####

[task] | single_turn [pass] | ⏳ 미판정 [title] | RevoluteJointComponent [question] | LowerAngle과 UpperAngle 값을 설정하기 전에 SetUseLimits를 true로 바꿔야 하는지, 아니면 순서가 상관없는지에 대해 알고 싶습니다. [answer] | 제시된 참고 문서에는 `SetLowerAngle`, `SetUpperAngle`, `SetUseLimits` 메서드의 실행 순서나 종속성에 대한 설명이 없습니다. 문서에는 각 메서드가 특정 순번(index)의 Joint에 해당하는 값을 설정한다는 기능 설명만 있을 뿐, "Limits를 활성화한 후에 각도를 설정해야 한다"거나 "순서가 무관하다"는 지침이 포함되어 있지 않습니다. 따라서 문서 근거만으로는 순서가 상관있는지 여부를 확인할 수 없습니다. 참고로, 각 메서드의 사용법은 다음과 같습니다. ```lua Method: [s [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | RevoluteJoint를 생성, 삭제합니다. 연결된 강체끼리의 상대적 회전을 제어합니다. # Properties - **SyncList<RevoluteJoint> Joints [Sync] [ReadOnly]** Joint 정보를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromInspector]** 계층 구조상에서 이

[task] | instruction_following [pass] | ⏳ 미판정 [title] | SideviewbodyComponent [question] | 이 컴포넌트에서 처리되는 충돌 시작 및 종료 이벤트 핸들러의 실행 공간(Space) 속성을 3문장 이내로 설명하세요. [answer] | `HandleRectTileCollisionBeginEvent`와 `HandleRectTileCollisionEndEvent` 핸들러 모두 `[client only]` 속성을 가지고 있어 클라이언트 공간에서만 실행됩니다. 이 이벤트들은 `KinematicbodyComponent`와 `SideviewbodyComponent`에서 서버와 클라이언트 양쪽 공간(Space: Server, Client)에서 발생한다고 명시되어 있습니다. 따라서 이벤트는 양쪽에서 발생하지만, 이 예제의 충돌 처리 로직은 클라이언트에서만 수행됩니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 측면에 닿은 벽 타일을 감지하는 예제입니다. ```lua Property: [None] table WallTile = {} Method: [client only] table GetWallTile () { return self.WallTile } Event Handler: [client only] [self] HandleRectTileCollisionBeginEvent (RectTileCollisionBeginEvent event) { ----------------- Native Emitter Info -----------

[task] | code [pass] | ⏳ 미판정 [title] | PhysicsSimulatorComponent [question] | 엔티티가 생성될 때 PhysicsSimulatorComponent의 SetPositionIteration을 50, SetVelocityIteration을 10으로 설정하여 물리 연산의 정밀도를 높이는 스크립트를 작성해줘. [answer] | `PhysicsSimulatorComponent`의 `SetPositionIteration`과 `SetVelocityIteration` 메서드는 문서에 따르면 "서버는 적용되지 않습니다"라고 명시되어 있습니다. 따라서 이 메서드를 호출하려면 `[client only]` 또는 `[client]` 실행 공간이 필요합니다. 엔티티가 생성될 때(클라이언트에서) 이 설정을 적용하기 위해 표준 생명주기 메서드인 `OnBeginPlay()`를 클라이언트 공간에서 사용하는 것이 적절합니다. 참고로, `PhysicsSimulatorCompone [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 맵에 물리 법칙을 적용합니다. 물리 연산과 관련된 설정을 조절할 수 있습니다. # Properties - **Vector2 Gravity [Sync]** 물리 연산의 중력 값을 설정합니다. - **boolean Paused [Sync]** 물리 연산의 일시정지 여부를 설정합니다. - **Vector2 WorldBounds [Sync] [ReadOnly]** 물리 연산 범위를 설정합니다. 엔티티가 범위를 벗어나면 물리 연산을 하지 않습니다. 예를 들어, 값을 (100, 100)으로 설정하면 원점(0, 0)을 중심으로 가

[task] | code [pass] | ⏳ 미판정 [title] | PrismaticJointComponent [question] | PrismaticJointComponent 의 SetMotorSpeed 메서드를 사용하여, 특정 엔티티의 수직 운동 속도를 5로 고정하여 상승시키는 OnBeginPlay 생명주기 함수를 포함하는 스크립트를 작성해줘 [answer] | PrismaticJointComponent 의 `SetMotorSpeed` 메서드를 사용하여 엔티티의 수직 운동 속도를 5로 고정하고 상승시키는 스크립트는 다음과 같습니다. 요청하신 `OnBeginPlay` 생명주기 함수를 포함하여, 서버 공간(`[server]`)에서 실행되도록 작성했습니다. ```lua Method: [server] void OnBeginPlay () { self.Entity.PrismaticJointComponent:SetMotorSpeed(1, 5) } ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | ```lua Method: [server] void GoUp () { self.Entity.PrismaticJointComponent:SetMotorSpeed(1, 3) } [server] void GoDown () { self.Entity.PrismaticJointComponent:SetMotorSpeed(1, -3) } Event Handler: [service: InputService] HandleKeyDownEvent (KeyDownEvent event) { --------------- Native Event Sen

[task] | instruction_following [pass] | ⏳ 미판정 [title] | SideviewbodyComponent [question] | WallTile 테이블이 저장되는 시점과 nil 처리되는 시점을 구분하여 2행 2열의 표로 정리하세요. [answer] | SideviewbodyComponent에서 벽 타일 감지를 위해 `WallTile` 테이블의 상태가 변경되는 시점은 다음과 같습니다. | 구분 | 처리 내용 | | :--- | :--- | | **저장되는 시점** | `HandleRectTileCollisionBeginEvent` 이벤트가 발생하고, `Normal`이 `Vector2.left` 또는 `Vector2.right`인 경우에만 `WallTile`에 정보(`info`, `position`, `normal`, `tilemap`)를 저장합니다. | | **nil 처리되는 시 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 측면에 닿은 벽 타일을 감지하는 예제입니다. ```lua Property: [None] table WallTile = {} Method: [client only] table GetWallTile () { return self.WallTile } Event Handler: [client only] [self] HandleRectTileCollisionBeginEvent (RectTileCollisionBeginEvent event) { ----------------- Native Emitter Info -----------

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