[task] | instruction_following [pass] | ⏳ 미판정 [title] | WebLoadCompleteEvent [question] | WebLoadCompleteEvent가 트리거되는 조건을 1단계 번호 목록으로 요약하세요. [answer] | WebLoadCompleteEvent가 트리거되는 조건은 다음과 같습니다. 1. 클라이언트 공간에서 `WebViewComponent`가 사용되고 있을 때 2. 해당 WebView에서 웹 페이지 로드가 완료될 때 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 웹 페이지 로드 완료 시 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * WebViewComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **WebLoadCompleteEvent()** 지정한 값으로 WebLoadCompleteEvent를 초기화합니
[task] | code [pass] | ⏳ 미판정 [title] | WheelJointComponent [question] | WheelJointComponent 와 DistanceJointComponent 를 함께 사용하여 W/S 키로 모터 속도를 제어하고 R 키로 조인트 연결 상태를 토글하는 통합 제어 스크립트를 작성해줘 [answer] | 제공된 문서에 포함된 예제 코드를 조합하여, W/S 키로 `WheelJointComponent`의 모터 속도를 제어하고 R 키로 `DistanceJointComponent` 연결 상태를 토글하는 통합 스크립트를 작성했습니다. ```lua Method: [server] void Accelerate() { self.Entity.WheelJointComponent:SetMotorEnable(1, true) self.Entity.WheelJointComponent:SetMotorSpeed(1, -10) } [server] void [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | W, S 키를 눌러 엔티티를 움직이는 예제입니다. ```lua Method: [server] void Accelerate() { self.Entity.WheelJointComponent:SetMotorEnable(1, true) self.Entity.WheelJointComponent:SetMotorSpeed(1, -10) } [server] void Deaccelerate() { self.Entity.WheelJointComponent:SetMotorEnable(1, true) self.Entity.WheelJoint
[task] | single_turn [pass] | ⏳ 미판정 [title] | PhysicsContactBeginEvent [question] | 이벤트가 발생하는 공간이 Server와 Client 모두라고 하지만, 실제 로직 처리 시 어느 쪽에서 처리하는 것이 권장되나요? [answer] | 참고 문서에는 `PhysicsContactBeginEvent`가 `PhysicsColliderComponent`에 의해 Server와 Client 공간 모두에서 발생한다는 사실만 명시되어 있습니다. 하지만 Server와 Client 중 어느 쪽에서 로직을 처리하는 것이 권장되는지에 대한 지침이나 권장 사항은 문서에 포함되어 있지 않습니다. 따라서 제공된 정보만으로는 권장 처리 공간을 특정할 수 없습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 두 물리 강체가 충돌을 시작할 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * PhysicsColliderComponent <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 ContactedBodyEntity** 충돌한 P
[task] | instruction_following [pass] | ⏳ 미판정 [title] | WebLoadFailEvent [question] | WebLoadFailEvent가 발생하는 실행 공간과 트리거 API를 2줄 이내로 설명하세요. [answer] | WebLoadFailEvent는 Client 공간에서 발생합니다. WebViewComponent API에 의해 트리거됩니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 웹 페이지 로드 실패 시 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * WebViewComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **WebLoadFailEvent()** 지정한 값으로 WebLoadFailEvent를 초기화합니다.
[task] | single_turn [pass] | ⏳ 미판정 [title] | UserKickEvent [question] | UserKickEvent의 UserId와 ProfileCode 중 어떤 값을 유저 식별에 사용하는 것이 권장되나요? [answer] | 제공된 문서에는 `UserKickEvent`의 `UserId`와 `ProfileCode` 중 어떤 값을 유저 식별에 사용하는 것이 권장되는지에 대한 명시적인 내용이 포함되어 있지 않습니다. 문서에는 두 프로퍼티의 정의만 다음과 같이 설명되어 있습니다. * **UserId**: 유저의 고유 식별자입니다. * **ProfileCode**: 유저의 프로필 코드입니다. 따라서 문서의 정보만으로는 특정 값을 권장한다고 단정할 수 없으며, 실제 구현 시에는 두 값의 고유성과 변동성 등을 고려하여 선택해야 합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 유저가 추방되었을 때 발생하는 이벤트입니다. 서버에서만 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * UserService <img src="https://img.shields.io/static/v1?label=Space&message=Server&color=c4a484" alt="custom" title="Server에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **KickReason KickReason** 추방 사유입니다. - **string ProfileCode
[task] | single_turn [pass] | ⏳ 미판정 [title] | PhysicsContactBeginEvent [question] | 두 물리 강체가 충돌하는 순간이 아니라 이미 접촉 상태인 채로 시작할 때 이 이벤트가 다시 발생하나요? [answer] | 제공된 참고 문서에는 `PhysicsContactBeginEvent`가 "두 물리 강체가 충돌을 시작할 때 발생하는 이벤트"라고만 정의되어 있으며, 이미 접촉 상태인 채로 시작하는 경우(초기 접촉 상태)에 대해 이 이벤트가 다시 발생하거나 발생하지 않는지에 대한 구체적인 설명이 포함되어 있지 않습니다. 따라서 제공된 정보만으로는 해당 질문에 대한 답을 할 수 없습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 두 물리 강체가 충돌을 시작할 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * PhysicsColliderComponent <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 ContactedBodyEntity** 충돌한 P
[task] | code [pass] | ⏳ 미판정 [title] | ParticleEmitEndEvent [question] | SpriteParticleComponent의 ParticleEmitEndEvent가 발생하면 _UserService를 통해 현재 접속한 유저 목록을 조회하고 그 개수를 로그로 남기는 스크립트를 작성해줘. [answer] | SpriteParticleComponent에서 `ParticleEmitEndEvent`를 처리하고, `_UserService`를 통해 현재 접속한 유저 목록을 조회하여 개수를 로그로 남기는 스크립트입니다. 참고 문서에 따르면, `SpriteParticleComponent`에서 발생하는 `ParticleEmitEndEvent`는 Server와 Client 공간에서 모두 발생합니다. `_UserService`는 일반적으로 Server 공간에서 동작하는 서비스이며, `GetUserEntityByUserId`와 같은 메서드가 문서 예제에 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 파티클의 방출이 종료되었을 때 BaseParticleComponent에서 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * AreaParticleComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * BasicParticleComponent <img src="h
[task] | code [pass] | ⏳ 미판정 [title] | WheelJointComponent [question] | InputService 의 KeyDownEvent 를 처리하여 R 키를 누를 때마다 DistanceJointComponent 의 GetJointsCount() 가 0 이면 Connect() 를, 0 이 아니면 Disconnect() 를 호출하는 스크립트를 작성해줘 [answer] | 사용자가 요청한 동작(R 키로 DistanceJointComponent 연결/해제 토글)은 제공된 문서에 이미 정확히 포함된 예제입니다. 해당 로직을 그대로 적용한 스크립트입니다. 참고로 `Connect()`와 `Disconnect()` 메서드의 실제 구현은 문서에 포함된 DistanceJoint 예제(볼 연결)를 기반으로 작성했습니다. 만약 다른 엔티티나 다른 연결 로직이 필요하면 해당 부분만 수정하시면 됩니다. ```lua Method: [server] void Connect() { -- 연결할 대상 엔티티 경로 (필요에 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | W, S 키를 눌러 엔티티를 움직이는 예제입니다. ```lua Method: [server] void Accelerate() { self.Entity.WheelJointComponent:SetMotorEnable(1, true) self.Entity.WheelJointComponent:SetMotorSpeed(1, -10) } [server] void Deaccelerate() { self.Entity.WheelJointComponent:SetMotorEnable(1, true) self.Entity.WheelJoint
[task] | single_turn [pass] | ⏳ 미판정 [title] | PhysicsContactBeginEvent [question] | 이벤트 핸들러 내에서 ContactedBodyEntity 값이 nil로 들어오는 경우가 있을까요? [answer] | 네, `ContactedBodyEntity` 값이 `nil`로 들어올 수 있습니다. `PhysicsContactBeginEvent`의 생성자(Constructor) 정의에서 `contactedBodyEntity` 인자의 기본값이 `nil`로 설정되어 있기 때문입니다. ```lua Constructors: PhysicsContactBeginEvent(Entity contactedBodyEntity = nil) ``` 따라서 이벤트 핸들러 내에서 `event.ContactedBodyEntity`를 사용할 때, 해당 값이 `nil` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 두 물리 강체가 충돌을 시작할 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * PhysicsColliderComponent <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 ContactedBodyEntity** 충돌한 P
[task] | instruction_following [pass] | ⏳ 미판정 [title] | WebLoadFailEvent [question] | WebLoadFailEvent를 처리하는 Event Handler 스크립트 예제를 코드만 출력하고 설명은 주석으로 작성하세요. [answer] | ```lua Event Handler: [self] HandleWebLoadFailEvent(WebLoadFailEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: WebViewComponent -- Space: Client --------------------------------------------------------- -- Web 페이지 로드 실패 이벤트 처리 log("Web [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 웹 페이지 로드 실패 시 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * WebViewComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **WebLoadFailEvent()** 지정한 값으로 WebLoadFailEvent를 초기화합니다.
[task] | single_turn [pass] | ⏳ 미판정 [title] | UserKickEvent [question] | UserKickEvent 이벤트 핸들러 안에서 self:MyMethod()를 호출할 수 있나요? [answer] | 네, `UserKickEvent` 이벤트 핸들러 안에서 `self:MyMethod()`를 호출할 수 있습니다. mLua 스크립트에서 이벤트 핸들러(Event Handler)는 해당 컴포넌트의 일부로 동작하므로, 컴포넌트 내에 정의된 다른 메서드(Method)를 `self:MyMethod()` 형태로 호출하는 것이 가능합니다. 참고로 `UserKickEvent`는 서버(Server)에서만 발생하는 이벤트이므로, 이벤트 핸들러를 작성할 때 `[server only]` 또는 `[server]` 실행 공간 속성을 명시하는 것이 적절합니 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 유저가 추방되었을 때 발생하는 이벤트입니다. 서버에서만 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * UserService <img src="https://img.shields.io/static/v1?label=Space&message=Server&color=c4a484" alt="custom" title="Server에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **KickReason KickReason** 추방 사유입니다. - **string ProfileCode
[task] | single_turn [pass] | ⏳ 미판정 [title] | ParticleEmitStartEvent [question] | 이벤트 핸들러에서 self:HandleParticleEmitStartEvent(ParticleEmitStartEvent event) 형태로 선언할 때, 이벤트 객체의 ParticleEntity 프로퍼티는 읽기 전용이므로 수정할 수 없나요? [answer] | 네, `ParticleEmitStartEvent`의 `ParticleEntity` 프로퍼티는 **읽기 전용(ReadOnly)** 이므로 수정할 수 없습니다. 이벤트 핸들러에서 이벤트 객체를 통해 엔티티를 참조할 때, 해당 프로퍼티는 이벤트가 발생한 원본 엔티티를 가리키는 정보만 제공하며, 이를 통해 다른 엔티티로 교체하거나 프로퍼티 값을 직접 변경하는 것은 불가능합니다. 참고로 `ParticleEmitStartEvent`는 `AreaParticleComponent`, `BasicParticleComponent`, `SpriteP [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 파티클 입자 방출이 시작될 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * AreaParticleComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * BasicParticleComponent <img src="https://img.shields.io/st
[task] | instruction_following [pass] | ⏳ 미판정 [title] | WebLoadFailEvent [question] | WebLoadFailEvent 생성자의 기능과 인자 정보를 표로 정리하세요. [answer] | `WebLoadFailEvent` 생성자의 기능과 인자 정보는 다음과 같습니다. | 항목 | 내용 | | :--- | :--- | | **생성자 이름** | `WebLoadFailEvent()` | | **기능** | 지정한 값으로 `WebLoadFailEvent`를 초기화합니다. | | **인자** | 문서에 명시된 인자가 없습니다. (무인자 생성자) | [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 웹 페이지 로드 실패 시 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * WebViewComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **WebLoadFailEvent()** 지정한 값으로 WebLoadFailEvent를 초기화합니다.
[task] | two_turn [pass] | ⏳ 미판정 [title] | WebLoadFailEvent [question] | 웹 페이지 로드 실패 시 발생하는 WebLoadFailEvent의 발생 조건과 기본 생성자에 대해 설명해 주세요. [answer] | `WebLoadFailEvent`는 웹 페이지 로드 실패 시 발생하는 이벤트입니다. **발생 조건** 이 이벤트는 `WebViewComponent`에 의해 발생하며, 실행 공간은 Client입니다. **기본 생성자** `WebLoadFailEvent()` 생성자는 지정한 값으로 `WebLoadFailEvent`를 초기화합니다. 참고: 제공된 문서에는 `WebLoadFailEvent`의 구체적인 프로퍼티(매개변수) 목록이나 `WebViewComponent`를 사용해 이 이벤트를 직접 트리거하는 메서드 시그니처가 포함되어 있지 않 [followup] | WebViewComponent가 클라이언트에서 이 이벤트를 트리거할 때, HandleWebLoadFailEvent 핸들러에서 사용할 수 있는 구체적인 프로퍼티나 메서드가 문서에 명시되어 있나요? [followup_answer] | 아니요, 문서에는 `HandleWebLoadFailEvent` 핸들러에서 사용할 수 있는 구체적인 프로퍼티나 메서드가 명시되어 있지 않습니다. 제공된 문서에는 `WebLoadFailEvent`가 `WebViewComponent`에 의해 Client 공간에서 발생한다는 사실과 `WebLoadFailEvent()` 기본 생성자만 설명되어 있으며, 이벤트 객체가 가진 필드(예: URL, 에러 코드 등) 목록은 포함되어 있지 않습니다. [scores] | [judge_reason] | [source_doc] | 웹 페이지 로드 실패 시 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * WebViewComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **WebLoadFailEvent()** 지정한 값으로 WebLoadFailEvent를 초기화합니다.
[task] | single_turn [pass] | ⏳ 미판정 [title] | ParticleEmitStartEvent [question] | ParticleEmitStartEvent는 어떤 파티클 컴포넌트에서 트리거되는지, UI 계열과 일반 계열의 발생 공간 차이가 있나요? [answer] | `ParticleEmitStartEvent`는 파티클 입자 방출이 시작될 때 발생하는 이벤트입니다. ### 트리거되는 파티클 컴포넌트 다음 6가지 파티클 컴포넌트에서 이 이벤트가 트리거됩니다: * `AreaParticleComponent` * `BasicParticleComponent` * `SpriteParticleComponent` * `UIAreaParticleComponent` * `UIBasicParticleComponent` * `UISpriteParticleComponent` ### 발생 공간 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 파티클 입자 방출이 시작될 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * AreaParticleComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * BasicParticleComponent <img src="https://img.shields.io/st
[task] | two_turn [pass] | ⏳ 미판정 [title] | WebViewPopupClosedEvent [question] | WebViewPopupClosedEvent는 어떤 컴포넌트에서 발생하며 어떤 기능을 하나요? [answer] | `WebViewPopupClosedEvent`는 열린 웹 페이지가 닫힐 때 발생하는 이벤트입니다. 이 이벤트는 클라이언트 공간에서 `WebViewComponent`에 의해 발생합니다. 참고 문서에는 `WebViewPopupClosedEvent`의 구체적인 파라미터(예: `event` 객체에서 접근 가능한 필드)나 특정 기능 사용 예시가 제공되지 않았습니다. 따라서 이 이벤트 핸들러 내부에서 어떤 데이터를 처리할 수 있는지 문서를 통해 확인이 불가능합니다. [followup] | WebViewComponent에서 WebViewPopupClosedEvent를 처리하는 Event Handler 코드를 작성해 주세요. [followup_answer] | `WebViewPopupClosedEvent`는 `WebViewComponent`에서 발생하며, 클라이언트 공간에서 처리됩니다. 제공된 문서에는 이 이벤트의 구체적인 파라미터가 명시되어 있지 않으므로, 이벤트가 발생했다는 사실만 확인하는 핸들러를 작성할 수 있습니다. ```lua Event Handler: [self] HandleWebViewPopupClosedEvent(WebViewPopupClosedEvent event) { --------------- Native Event Sender Info ------------ [scores] | [judge_reason] | [source_doc] | 열린 웹 페이지가 닫힐 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * WebViewComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Constructors - **WebViewPopupClosedEvent()** 기본값으로 WebViewPopupClosedEvent를
[task] | single_turn [pass] | ⏳ 미판정 [title] | PhysicsContactBeginEvent [question] | PhysicsContactBeginEvent 생성자를 직접 호출해서 이벤트를 수동으로 발생시키는 용도로 사용할 수 있나요? [answer] | 참고 문서에 따르면, `PhysicsContactBeginEvent`는 `PhysicsColliderComponent`에 의해 발생하는 이벤트입니다. 즉, 이 이벤트는 물리 강체 간의 실제 충돌 상황에서 시스템이 자동으로 트리거하도록 설계되어 있습니다. 문서에는 `PhysicsContactBeginEvent(Entity contactedBodyEntity = nil)` 생성자가 존재한다고 기술되어 있지만, 이 생성자를 개발자가 직접 호출하여 이벤트를 "수동으로 발생시키는 용도"로 사용하는지 여부는 명시되어 있지 않습니다. 일반적으 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 두 물리 강체가 충돌을 시작할 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * PhysicsColliderComponent <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 ContactedBodyEntity** 충돌한 P
[task] | code [pass] | ⏳ 미판정 [title] | PhysicsContactBeginEvent [question] | PhysicsContactBeginEvent 를 처리하여 충돌한 Physics Rigidbody 엔티티의 TransformComponent.Position 을 log 로 출력하는 스크립트를 작성해줘 [answer] | `PhysicsContactBeginEvent`를 처리하여 충돌한 엔티티의 위치를 로그로 출력하는 스크립트는 다음과 같습니다. ```lua Event Handler: [self] HandlePhysicsContactBeginEvent(PhysicsContactBeginEvent event) { local ContactedBodyEntity = event.ContactedBodyEntity log("충돌한 엔티티 위치: " .. tostring(ContactedBodyEntity.TransformComponent.Po [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 두 물리 강체가 충돌을 시작할 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * PhysicsColliderComponent <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 ContactedBodyEntity** 충돌한 P
[task] | code [pass] | ⏳ 미판정 [title] | ParticleEmitStartEvent [question] | SpriteParticleComponent 의 ParticleEmitStartEvent 핸들러에서 이벤트의 ParticleEntity 속성을 참조하여 해당 엔티티의 TransformComponent.Position 을 반환하는 메서드를 작성해줘 [answer] | `SpriteParticleComponent`에서 발생하는 `ParticleEmitStartEvent`는 Server와 Client 양쪽에서 발생하며, 이벤트 객체의 `ParticleEntity` 프로퍼티를 통해 해당 파티클이 속한 엔티티를 참조할 수 있습니다. 요청하신 대로 이벤트 핸들러에서 `ParticleEntity`의 `TransformComponent.Position`을 반환하도록 메서드를 작성하면 다음과 같습니다. ```lua Property: [None] Vector2 LastParticlePosition = Vec [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 파티클 입자 방출이 시작될 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * AreaParticleComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * BasicParticleComponent <img src="https://img.shields.io/st
[task] | two_turn [pass] | ⏳ 미판정 [title] | WheelJointComponent [question] | 문서의 HandleKeyDownEvent 핸들러는 R 키 입력 시 DistanceJointComponent의 조인트 수를 확인하여 연결/분리를 처리하는데, 이 로직을 W/S 키로 엔티티를 움직이는 Accelerate/Deaccelerate 함수에 직접 연결하려면 어떤 이벤트 핸들러를 추가해야 하는가? [answer] | 기존의 `HandleKeyDownEvent` 핸들러는 R 키 입력만 처리하도록 작성되어 있습니다. W/S 키를 눌러 `Accelerate()`와 `Deaccelerate()` 함수를 호출하려면, W 키와 S 키에 대한 조건 분기를 추가해야 합니다. W/S 키 입력을 처리하도록 수정된 이벤트 핸들러는 다음과 같습니다. ```lua Event Handler: [service: InputService] HandleKeyDownEvent(KeyDownEvent event) { --------------- Native Event Sen [followup] | 만약 W 키를 누르는 동안 가속을 유지하고, 키를 뗄 때 감속(또는 엔진 오프)을 실행하는 KeyUp 이벤트 처리 로직을 작성한다면, SetMotorEnable(false)를 호출하는 EngineOff 함수와 Deaccelerate 함수 중 어느 것을 호출하는 것이 물리적으로 자연스러운 멈춤을 만드는지 코드 예시를 통해 비교해 주세요. [followup_answer] | 제공된 참고 문서에는 `KeyUpEvent` 핸들러에 대한 정보나 `WheelJointComponent`의 감속/정지 동작에 대한 물리적 설명이 포함되어 있지 않습니다. 문서에 존재하는 내용은 `KeyDownEvent` 처리, `Accelerate`, `Deaccelerate`, `EngineOff` 함수의 시그니처와 내부 코드, 그리고 `DistanceJointComponent` 연결/분리 로직뿐입니다. 따라서 문서에 근거하여 `KeyUp` 이벤트 처리 로직을 작성하거나, `EngineOff`와 `Deaccelerate` 중 어 [scores] | [judge_reason] | [source_doc] | W, S 키를 눌러 엔티티를 움직이는 예제입니다. ```lua Method: [server] void Accelerate() { self.Entity.WheelJointComponent:SetMotorEnable(1, true) self.Entity.WheelJointComponent:SetMotorSpeed(1, -10) } [server] void Deaccelerate() { self.Entity.WheelJointComponent:SetMotorEnable(1, true) self.Entity.WheelJoint
[task] | single_turn [pass] | ⏳ 미판정 [title] | PhysicsContactBeginEvent [question] | PhysicsContactBeginEvent 이벤트 핸들러에서 ContactedBodyEntity 프로퍼티를 통해 접근할 수 있는 엔티티는 항상 상대 물리 강체인가요? [answer] | 네, `PhysicsContactBeginEvent` 이벤트 핸들러에서 `event.ContactedBodyEntity` 프로퍼티를 통해 접근할 수 있는 엔티티는 항상 **상대 물리 강체(Rigidbody) 엔티티**입니다. 이 이벤트는 두 물리 강체가 충돌을 시작할 때 발생하며, 이벤트 객체의 `ContactedBodyEntity` 프로퍼티에는 충돌 상대방인 Physics Rigidbody 엔티티가 담깁니다. 따라서 이 프로퍼티를 통해 얻은 엔티티는 `PhysicsRigidbodyComponent`를 가진 상대 객체임을 의미합니 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 두 물리 강체가 충돌을 시작할 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * PhysicsColliderComponent <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 ContactedBodyEntity** 충돌한 P
[task] | two_turn [pass] | ⏳ 미판정 [title] | UserKickEvent [question] | 유저가 추방될 때 발생하는 UserKickEvent의 기본 속성과 발생 조건은 무엇인가요? [answer] | `UserKickEvent`는 유저가 추방되었을 때 발생하는 이벤트이며, **서버에서만** 발생합니다. ### 발생 조건 이 이벤트는 `UserService`에 의해 트리거됩니다. ### 기본 속성(Properties) `UserKickEvent` 객체는 다음과 같은 속성을 가집니다: 1. **`KickReason KickReason`**: 추방의 사유를 나타냅니다. 2. **`string ProfileCode`**: 추방된 유저의 프로필 코드입니다. 3. **`string UserId`**: 추방된 유저의 고유 식별자입 [followup] | UserKickEvent에서 KickReason, ProfileCode, UserId 속성을 각각 어떻게 활용하여 추방 사유를 로그에 기록하고, 특정 사유(예: KickReason.Profanity)에 따른 후속 처리 로직을 구현할 수 있는지 코드 예시를 보여주세요. [followup_answer] | `UserKickEvent`는 서버에서만 발생하는 이벤트이므로, 이벤트 핸들러의 실행 공간은 `[server only]`로 지정해야 합니다. 이벤트 객체(`event`)에서 `KickReason`, `ProfileCode`, `UserId` 속성을 접근하여 추방 정보를 로그에 기록하고, `KickReason` 값에 따라 조건 분기를 통해 후속 처리 로직을 구현할 수 있습니다. 아래는 `UserService`의 `UserKickEvent`를 처리하는 mLua 스크립트 예시입니다. ```lua Event Handler: [serve [scores] | [judge_reason] | [source_doc] | 유저가 추방되었을 때 발생하는 이벤트입니다. 서버에서만 발생합니다. 이 Event는 아래 API에 의해 발생합니다. * UserService <img src="https://img.shields.io/static/v1?label=Space&message=Server&color=c4a484" alt="custom" title="Server에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **KickReason KickReason** 추방 사유입니다. - **string ProfileCode
[task] | instruction_following [pass] | ⏳ 미판정 [title] | WebViewClickedEvent [question] | WebViewClickedEvent의 NormalizedPosition 속성에 대한 설명을 3문장 이내로 작성하세요. [answer] | `WebViewClickedEvent`의 `NormalizedPosition` 속성은 웹뷰에서 클릭이 발생한 위치를 나타냅니다. 이 값은 좌표가 0에서 1 사이의 범위로 정규화되어 있습니다. 클릭 이벤트 발생 시 해당 속성을 통해 상대적 위치 정보를 확인할 수 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 웹뷰에 클릭을 입력했을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * WebViewComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **Vector2 NormalizedPosition** 클릭이 발생한 위치를 0에서 1의 범위로 정규화시킨 값입니
[task] | single_turn [pass] | ⏳ 미판정 [title] | ParticleEmitStartEvent [question] | ParticleEmitStartEvent의 기본 생성자 ParticleEmitStartEvent()를 직접 호출해서 이벤트를 수동으로 발생시킬 수 있나요? [answer] | 아니요, `ParticleEmitStartEvent()` 기본 생성자를 직접 호출하여 이벤트를 수동으로 발생시킬 수 없습니다. 참고 문서에 따르면 `ParticleEmitStartEvent`는 특정 파티클 컴포넌트(`AreaParticleComponent`, `BasicParticleComponent`, `SpriteParticleComponent`, `UIAreaParticleComponent`, `UIBasicParticleComponent`, `UISpriteParticleComponent`)의 API에 의해 **자동으로 발 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 파티클 입자 방출이 시작될 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * AreaParticleComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * BasicParticleComponent <img src="https://img.shields.io/st
[task] | code [pass] | ⏳ 미판정 [title] | WheelJointComponent [question] | WheelJointComponent 의 SetLocalAnchorA(0, Vector2(0, 0.5)) 및 SetLocalAnchorB(0, Vector2(0, -0.5)) 를 통해 Joint 의 앵커 위치를 조정하고, OnEndPlay() 시점에 DestroyJoint(0) 을 호출하여 연결을 해제하는 스크립트를 작성해줘 [answer] | 요청하신 `WheelJointComponent`의 앵커 위치 조정 및 종료 시 Joint 제거 로직을 수행하는 mLua 스크립트입니다. ```lua Method: [server] void OnBeginPlay() { -- Joint가 존재한다고 가정하고 앵커 위치를 설정합니다. -- (실제 환경에서는 AddJoint로 먼저 생성해야 SetLocalAnchorA/B가 정상 작동합니다) self.Entity.WheelJointComponent:SetLocalAnchorA(0, Vector2(0, 0.5)) [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | WheelJoint를 생성, 삭제합니다. 연결된 강체가 바퀴처럼 동작합니다. # Properties - **SyncList<WheelJoint> Joints [Sync] [ReadOnly]** Joint 정보를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromInspector]** 계층 구조상에서 이 컴포넌트가 Enabl
[task] | code [pass] | ⏳ 미판정 [title] | PhysicsContactBeginEvent [question] | PhysicsContactBeginEvent 의 ContactedBodyEntity 를 확인하여 충돌 상대의 이름이 "Enemy" 인 경우 log 로 알림을 출력하는 스크립트를 작성해줘 [answer] | PhysicsContactBeginEvent 를 처리하는 이벤트 핸들러에서 `event.ContactedBodyEntity` 프로퍼티를 통해 충돌한 엔티티를 가져오고, 그 엔티티의 `Name` 속성이 "Enemy" 인지 확인하여 조건이 맞을 때 `log` 함수로 메시지를 출력하는 스크립트는 다음과 같습니다. ```lua Event Handler: [self] HandlePhysicsContactBeginEvent (PhysicsContactBeginEvent event) { --------------- Native Event S [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 두 물리 강체가 충돌을 시작할 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * PhysicsColliderComponent <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 ContactedBodyEntity** 충돌한 P
[task] | instruction_following [pass] | ⏳ 미판정 [title] | WebViewClickedEvent [question] | WebViewClickedEvent 생성자의 매개변수 명세와 기본값을 표로 정리해서 출력하세요. [answer] | WebViewClickedEvent 생성자의 매개변수 명세와 기본값은 다음과 같습니다. | 매개변수 | 타입 | 기본값 | 설명 | | :--- | :--- | :--- | :--- | | normalizedPosition | Vector2 | Vector2(0, 0) | 지정한 값으로 WebViewClickedEvent를 초기화합니다. | [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 웹뷰에 클릭을 입력했을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * WebViewComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **Vector2 NormalizedPosition** 클릭이 발생한 위치를 0에서 1의 범위로 정규화시킨 값입니
[task] | two_turn [pass] | ⏳ 미판정 [title] | ParticleEmitEndEvent [question] | ParticleEmitEndEvent 핸들러에서 이벤트가 발생한 엔티티를 식별하기 위해 사용할 수 있는 속성은 무엇인가요 [answer] | `ParticleEmitEndEvent` 핸들러에서 이벤트가 발생한 엔티티를 식별하기 위해 사용할 수 있는 속성은 `ParticleEntity`입니다. 이 속성은 읽기 전용(ReadOnly)이며, 이벤트가 발생한 엔티티(`Entity` 타입)를 반환합니다. ```lua Event Handler: [self] HandleParticleEmitEndEvent(ParticleEmitEndEvent event) { -- 이벤트가 발생한 엔티티를 가져옵니다. local emittedEntity = event.Particle [followup] | 이벤트 핸들러 내에서 self.Entity.ParticleEntity 로 접근할 때, 해당 값이 null이거나 비어 있을 수 있는 예외적인 상황(예: 파티클이 수동으로 파괴된 경우)이 있는지, 그리고 이를 방어적으로 처리하는 코드 예시를 보여 주세요. [followup_answer] | 참고 문서에 따르면 `ParticleEmitEndEvent`의 `ParticleEntity` 속성은 "이벤트가 발생한 엔티티"를 나타내는 읽기 전용(ReadOnly) 속성으로 정의되어 있습니다. 하지만 문서에는 파티클이 수동으로 파괴되는 등 특수 상황에서 `ParticleEntity`가 null이거나 비어 있을 수 있는지 여부에 대한 명시적인 정보가 포함되어 있지 않습니다. 따라서 문서만으로는 예외 발생 가능성을 단정할 수 없으며, 제공된 문서 범위 내에서는 `ParticleEntity`가 항상 유효한 `Entity` 객체로 반환 [scores] | [judge_reason] | [source_doc] | 파티클의 방출이 종료되었을 때 BaseParticleComponent에서 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * AreaParticleComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * BasicParticleComponent <img src="h
[task] | single_turn [pass] | ⏳ 미판정 [title] | ParticleEmitStartEvent [question] | AreaParticleComponent와 BasicParticleComponent 모두에서 발생하는 ParticleEmitStartEvent를 하나의 핸들러로 통합해서 처리할 수 있나요? [answer] | 네, 가능합니다. `ParticleEmitStartEvent`는 `AreaParticleComponent`, `BasicParticleComponent`, `SpriteParticleComponent` 등 다양한 파티클 컴포넌트에서 공통적으로 발생하는 이벤트이므로, 하나의 이벤트 핸들러로 통합 처리할 수 있습니다. 이벤트 객체에 포함된 `ParticleEntity` 프로퍼티를 통해 이벤트가 발생한 엔티티를 확인하고, 해당 엔티티에 어떤 파티클 컴포넌트가 있는지 검사하여 조건부로 로직을 분기하는 방식이 적합합니다. 다음은 `Are [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 파티클 입자 방출이 시작될 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * AreaParticleComponent <img src="https://img.shields.io/static/v1?label=Space&message=Server,Client&color=c4a484" alt="custom" title="Server, Client에서 이벤트가 발생합니다." data-nodeid="4"> * BasicParticleComponent <img src="https://img.shields.io/st
[task] | instruction_following [pass] | ⏳ 미판정 [title] | WebViewClickedEvent [question] | WebViewClickedEvent를 다루는 Event Handler 코드만 출력하고 설명은 주석으로 작성하세요. [answer] | ```lua Event Handler: [service: WebViewComponent] HandleWebViewClickedEvent(WebViewClickedEvent event) { -- WebViewClickedEvent는 클라이언트 공간에서 발생합니다. -- event.NormalizedPosition 은 클릭 위치를 0~1 범위로 정규화한 Vector2 값입니다. local clickPos = event.NormalizedPosition -- 정규화된 클릭 위치를 로그로 출력합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 웹뷰에 클릭을 입력했을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * WebViewComponent <img src="https://img.shields.io/static/v1?label=Space&message=Client&color=c4a484" alt="custom" title="Client에서 이벤트가 발생합니다." data-nodeid="4"> # Properties - **Vector2 NormalizedPosition** 클릭이 발생한 위치를 0에서 1의 범위로 정규화시킨 값입니