[task] | single_turn [pass] | ⏳ 미판정 [title] | SideviewbodyComponent [question] | KinematicbodyComponent와 SideviewbodyComponent 모두 RectTileCollisionBeginEvent를 발생시키는데, 두 컴포넌트에서 이 이벤트를 처리할 때 주된 차이점은 무엇인가요? [answer] | 제공된 참고 문서에 따르면, `KinematicbodyComponent`와 `SideviewbodyComponent` 모두 `RectTileCollisionBeginEvent`를 발생시키며, 이벤트 핸들러의 실행 공간(Space)은 모두 **Server, Client**입니다. 문서에는 두 컴포넌트 간 이벤트 처리 시의 **기능적 차이점이나 로직 차이**에 대한 설명이 포함되어 있지 않습니다. 문서의 예제 코드는 `SideviewbodyComponent`를 사용하는 컨텍스트(측면에 닿은 벽 타일 감지)에서 `RectTileColl [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] | RevoluteJointComponent [question] | InputService의 KeyDownEvent와 KeyUpEvent 핸들러를 구현하여 특정 키 입력 시 GoUp, GoDown, Stop 메서드를 호출하는 로직을 포함하는 스크립트를 작성해줘. [answer] | W 키를 누르면 `GoUp`, S 키를 누르면 `GoDown`, 그리고 어떤 키든 뗄 때 `Stop`을 호출하도록 구현한 스크립트입니다. `RevoluteJointComponent`의 `SetMotorSpeed` 메서드를 사용하여 회전 속도를 제어합니다. ```lua Method: [server] void GoUp ( ) { self.Entity.RevoluteJointComponent:SetMotorSpeed(1, 10) } [server] void GoDown ( ) { self.Entity.RevoluteJointCom [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] | PrismaticJointComponent [question] | PrismaticJointComponent의 Joints 프로퍼티가 SyncList 타입인 이유와, 클라이언트에서 이 리스트를 읽기 위해 IsClient()를 어떻게 활용해야 하는지 설명해 주세요. [answer] | `PrismaticJointComponent`의 `Joints` 프로퍼티가 `SyncList<PrismaticJoint>` 타입인 이유는 서버에서 생성되거나 변경된 조인트 정보(연결된 대상, 앵커, 축 등)를 클라이언트까지 동기화하여 물리 시뮬레이션 결과를 시각화하거나 로직에 활용하기 위해서입니다. `[Sync]` 속성이 붙어 있으므로 서버에서 이 리스트에 항목이 추가되거나 수정되면 클라이언트의 해당 리스트도 자동으로 갱신됩니다. `[ReadOnly]` 속성이 붙어 있어 클라이언트에서는 직접 리스트에 항목을 추가하거나 삭제할 수 없 [followup] | 서버에서 AddJoint로 조인트를 추가한 뒤, 클라이언트에서 Joints 리스트의 크기를 확인하여 UI에 조인트 개수를 표시하는 HandleUserEnterEvent 기반 코드 예제를 작성해 주세요. [followup_answer] | 서버에서 `AddJoint`로 조인트를 추가하면 `SyncList<PrismaticJoint> Joints`의 변경 내용이 클라이언트로 동기화됩니다. 클라이언트에서는 `HandleUserEnterEvent`를 통해 사용자가 입장했을 때, `IsClient()`를 확인한 후 `GetJointsCount()`를 호출하여 현재 연결된 조인트의 수를 확인하고 UI에 표시할 수 있습니다. 참고로, UI 컴포넌트(예: `TextComponent`)의 구체적인 API는 제공된 문서에 포함되어 있지 않으므로, 아래 예제에서는 조인트 개수를 로그 [scores] | [judge_reason] | [source_doc] | PrismaticJoint를 생성, 삭제할 수 있습니다. 연결된 강체가 특정 축 방향으로만 상대적 이동하도록 제한할 수 있습니다. # Properties - **SyncList<PrismaticJoint> Joints [Sync] [ReadOnly]** Joint의 정보를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromIn
[task] | code [pass] | ⏳ 미판정 [title] | RevoluteJointComponent [question] | KeyboardKey.W와 KeyboardKey.S를 판별하여 회전 방향을 결정하고, KeyUpEvent 발생 시 무조건 정지 상태를 유지하도록 하는 이벤트 처리 스크립트를 작성해줘. [answer] | `KeyboardKey.W`와 `KeyboardKey.S` 키 입력을 감지하여 회전 방향을 제어하고, 키를 놓았을 때(`KeyUpEvent`) 항상 모터를 정지시키는 스크립트입니다. `RevoluteJointComponent`의 `SetMotorSpeed` 메서드를 사용하여 회전 속도를 설정하며, W 키는 양의 속도(시계 방향 또는 설정된 축 기준 양 방향), S 키는 음의 속도(반대 방향)를 적용합니다. 모든 키가 해제되면 속도를 0으로 설정하여 정지 상태를 유지합니다. ```lua Method: [server] void Go [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] | PulleyJointComponent [question] | PulleyJointComponent의 DestroyJoint 메서드를 사용하여 특정 인덱스의 조인트를 삭제하고, SetCollideConnected 메서로 연결된 강체 간 충돌 여부를 제어하는 스크립트를 작성해줘 [answer] | `PulleyJointComponent`의 `DestroyJoint` 메서드는 특정 인덱스에 해당하는 조인트를 삭제하고, `SetCollideConnected` 메서드는 해당 인덱스의 조인트에 연결된 두 강체 사이의 충돌 여부를 `true` 또는 `false`로 설정하는 데 사용됩니다. 아래는 이 두 메서드를 사용하여 조인트를 관리하는 스크립트 예시입니다. ```lua Property: [None] number TargetJointIndex = 0 Method: [server] void InitializePulley (Enti [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] | PrismaticJointComponent [question] | SetUseLimits와 SetLowerTranslation, SetUpperTranslation을 조합하여 특정 축 이동 범위를 제한하는 경우, MotorSpeed가 0일 때와 다른 값일 때의 동작 차이는 무엇이며, 이 설정을 적용하는 초기화 코드를 보여주세요. [answer] | 제공된 문서에는 `PrismaticJointComponent`의 각 메서드(`SetUseLimits`, `SetLowerTranslation`, `SetUpperTranslation`, `SetMotorSpeed` 등)의 **기능 설명(메서드 시그니처 및 반환값)** 만이 포함되어 있으며, **물리 엔진의 내부 동작 원리나 MotorSpeed가 0일 때와 다른 값일 때의 구체적인 동작 차이(예: 모터가 꺼져 있을 때 제한 범위 내에서 자유 이동 여부, 모터가 켜져 있을 때 제한 범위와 충돌 시 동작 등)에 대한 설명은 없습니다.** [followup] | SetUseLimits를 true로 설정하고 LowerTranslation을 -5, UpperTranslation을 5로 고정하며, SetMotorSpeed를 0으로 초기화하는 OnBeginPlay 스크립트 예제를 작성해 주세요. [followup_answer] | 요청하신 조건(`SetUseLimits` true, `LowerTranslation` -5, `UpperTranslation` 5, `SetMotorSpeed` 0)을 만족하는 `OnBeginPlay` 스크립트 예제입니다. 참고로, `AddJoint` 호출 시 `targetEntity`, `localAnchorA`, `localAnchorB`, `localAxis` 인자가 필요합니다. 아래 예제에서는 `TargetEntityRef` 프로퍼티를 통해 대상 엔티티를 지정하고, 앵커는 `(0,0)`, 축은 X축 방향(`Vector2(1 [scores] | [judge_reason] | [source_doc] | PrismaticJoint를 생성, 삭제할 수 있습니다. 연결된 강체가 특정 축 방향으로만 상대적 이동하도록 제한할 수 있습니다. # Properties - **SyncList<PrismaticJoint> Joints [Sync] [ReadOnly]** Joint의 정보를 설정합니다. ##### inherited from Component: - **boolean Enable [Sync]** 컴포넌트 활성화 여부를 확인합니다. - **boolean EnableInHierarchy [ReadOnly] [HideFromIn
[task] | instruction_following [pass] | ⏳ 미판정 [title] | WebViewComponent [question] | WebViewClickedEvent가 발생하는 조건과 WebViewPopupClosedEvent가 발생하는 조건을 각각 1문장 이내로 설명하세요. [answer] | WebViewClickedEvent는 웹뷰에 클릭을 입력했을 때 발생하며, WebViewPopupClosedEvent는 열린 웹 페이지가 닫힐 때 발생합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | - **OrderInLayerChangedEvent** Component의 OrderInLayer가 변경되었을 때 발생하는 이벤트입니다. - **SortingLayerChangedEvent** 컴포넌트의 SortingLayer가 변경되었을 때 발생하는 이벤트입니다. - **WebLoadCompleteEvent** 웹 페이지 로드 완료 시 발생하는 이벤트입니다. - **WebLoadFailEvent** 웹 페이지 로드 실패 시 발생하는 이벤트입니다. - **WebViewClickedEvent** 웹뷰에 클릭을 입력했
[task] | single_turn [pass] | ⏳ 미판정 [title] | SideviewbodyComponent [question] | SideviewbodyComponent에서 벽 타일 충돌 시 Normal 값이 Vector2.left 또는 Vector2.right인 경우만 벽으로 판정하는 이유는 무엇인가요? [answer] | SideviewbodyComponent의 예제에서 `Normal` 값이 `Vector2.left` 또는 `Vector2.right`인 경우만 벽 타일로 판정하는 이유는, **측면(좌우) 방향으로만 벽 충돌을 감지하기 위함**입니다. `Normal` 벡터는 충돌이 발생한 표면의 법선 방향, 즉 캐릭터가 부딪힌 표면에서 바깥으로 뻗어나가는 방향을 나타냅니다. * `Vector2.left` 또는 `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] | WebViewComponent [question] | WebViewComponent에서 줌 상태가 페이지별로 각각 유지되는 동작을 하는 메서드 이름을 코드 블록(```lua`) 안에 주석으로만 출력하세요. [answer] | ```lua -- 줌 상태가 페이지별로 각각 유지되는 메서드: ZoomIn(), ZoomOut() ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | UI와 월드에 웹뷰(WebView)를 배치합니다. 웹 페이지의 조작 가능 여부, 탐색 방법 등을 설정할 수 있습니다. # Properties - **boolean ClickingEnabled [Sync]** 웹뷰에서 클릭을 가능하게 할지 여부입니다. - **DragMode DragMode** 웹뷰 내에서 드래그했을 때 어떻게 동작할지 설정합니다. - **float DragThreshold** 드래그 시 클릭으로 인식하지 않게 만들기 위한 임곗값입니다. 수치가 매우 높으면 드래그가 클릭으로 인식될 수 있습니다. - **
[task] | instruction_following [pass] | ⏳ 미판정 [title] | WebViewComponent [question] | WebViewComponent에서 Url 프로퍼티의 프로토콜 제한 사항과 변경 빈도 제한을 2문장 이내로 설명하세요. [answer] | WebViewComponent의 Url 프로퍼티는 http와 https 프로토콜만 사용할 수 있습니다. 또한, 1분당 10회까지만 변경할 수 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | UI와 월드에 웹뷰(WebView)를 배치합니다. 웹 페이지의 조작 가능 여부, 탐색 방법 등을 설정할 수 있습니다. # Properties - **boolean ClickingEnabled [Sync]** 웹뷰에서 클릭을 가능하게 할지 여부입니다. - **DragMode DragMode** 웹뷰 내에서 드래그했을 때 어떻게 동작할지 설정합니다. - **float DragThreshold** 드래그 시 클릭으로 인식하지 않게 만들기 위한 임곗값입니다. 수치가 매우 높으면 드래그가 클릭으로 인식될 수 있습니다. - **
[task] | single_turn [pass] | ⏳ 미판정 [title] | SideviewbodyComponent [question] | TilePosition을 저장할 때 Clone()을 사용하지 않고 직접 참조를 대입하면 어떤 문제가 발생할 수 있나요? [answer] | `TilePosition`은 `Vector2` 타입이며, mLua에서 `Vector2`는 값 타입(value type)으로 동작합니다. 따라서 `Clone()`을 사용하지 않고 직접 대입하더라도 별도의 참조 문제(원본 값이 변형되는 문제)는 발생하지 않습니다. 문서 예제 코드에서 `Clone()`을 사용하는 이유는 다음과 같습니다: 1. **명시적인 값 복사 의도 표현**: `Clone()`을 호출함으로써 "현재 시점의 좌표 값을 복사해서 저장한다"는 의도를 명확하게 코드에 드러냅니다. 2. **일관된 스타일 유지**: 같은 코 [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] | single_turn [pass] | ⏳ 미판정 [title] | RevoluteJointComponent [question] | HandleKeyUpEvent에서 Stop을 호출할 때 특정 키에 대한 판단 없이 모든 키가 놓였을 때 멈추도록 구현했는데, 다른 키 입력에도 영향을 받지 않는지 확인하려면 어떻게 해야 하나요? [answer] | 제공된 참고 문서에 포함된 `HandleKeyUpEvent` 예제 코드를 확인해 보면, 이벤트 핸들러 내부에서 `event.key` 값을 추출하여 특정 키(W 또는 S 등)에 대한 조건 분기(`if` 또는 `elseif`)를 거치지 않고 바로 `self:Stop()`을 호출하는 구조로 작성되어 있습니다. 따라서 현재 구현 방식은 **어떤 키가 눌렸다가 놓였든 상관없이 모든 키 업(Key Up) 이벤트가 발생하면 무조건 `Stop()`이 실행**됩니다. 다른 키 입력에 영향을 받지 않도록 하려면, `HandleKeyUpEvent` [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] | SideviewbodyComponent [question] | SideviewbodyComponent 에서 HandleRectTileCollisionBeginEvent 와 HandleRectTileCollisionEndEvent 를 처리하여 벽 타일 충돌 정보를 저장 및 초기화하는 클라이언트 전용 스크립트를 작성해줘 [answer] | ```lua Property: [None] table WallTile = {} Method: [client only] table GetWallTile () { return self.WallTile } Event Handler: [client only] [self] HandleRectTileCollisionBeginEvent (RectTileCollisionBeginEvent event) { local Entity = event.Entity local Normal = event.Normal local Point = eve [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] | SpriteParticleComponent [question] | EntityService를 통해 "/maps/map01/particle" 경로의 엔티티를 찾아 SpriteParticleComponent의 ParticleCount를 50으로 설정하는 스크립트를 작성해줘 [answer] | EntityService를 사용하여 특정 경로의 엔티티를 조회한 뒤, 해당 엔티티의 SpriteParticleComponent를 통해 ParticleCount를 수정하는 로직을 구현합니다. 참고로 `SpriteParticleComponent`의 `ParticleCount` 프로퍼티는 `[Sync]` 속성이 있어 서버에서 설정하면 클라이언트에 동기화됩니다. ```lua Method: [server only] void OnBeginPlay() { local targetEntity = _EntityService:GetEntit [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 스프라이트 파티클 효과를 만드는 기능을 제공합니다. # Properties - **boolean ApplySpriteColor [Sync]** 파티클이 사용할 스프라이트에 Color 프로퍼티를 적용할지 여부를 설정합니다. 프로퍼티가 false일지라도 Color의 투명도 값은 적용됩니다. - **SpriteParticleType ParticleType [Sync]** 생성할 파티클의 타입을 설정합니다. - **string SpriteRUID [Sync]** 파티클로 사용할 SpriteRUID를 설정합니다. #####
[task] | code [pass] | ⏳ 미판정 [title] | MODTweenLogic [question] | Let's re-read the constraint: "주어진 원문에 있는 정보만 사용하고, 없는 사실·API·코드 예제를 지어내지 않습니다." (Use only the information in the given original text, and do not invent missing facts, APIs, or code examples.) [answer] | 제공된 참고 문서에 따르면, **MODTweenLogic**은 더 이상 사용되지 않는(Legacy/Deprecated) Logic입니다. 따라서 `MODTweenLogic`의 메서드(`Ease`, `MoveTo`, `MoveToOffset`, `StartFloating`, `StartRot`, `StopFloating`, `StopRot`)를 직접 호출하는 코드를 작성하는 것은 권장되지 않으며, 문서에는 해당 함수들이 "더는 사용하지 않는 함수"라고 명시되어 있습니다. 대신 문서에서 권장하는 **대안 API**들은 다음과 같습니 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 더는 사용하지 않는 Logic입니다. 용도에 맞게 TweenLogic, TweenLineComponent, TweenFloatingComponent, TweenCircularComponent를 사용하세요. # Methods - **float Ease(EaseType type, float from, float totalDelta, float time, float duration) [Deprecated] [Static]** 더는 사용하지 않는 함수입니다. TweenLogic의 Ease(float, float, float, Eas
[task] | single_turn [pass] | ⏳ 미판정 [title] | SideviewbodyComponent [question] | SideViewRectTileMap 모드에서만 동작한다고 명시되어 있는데, 현재 맵 모드가 SideViewRectTileMap 이 아닌 경우 SideviewbodyComponent 를 사용하려고 하면 어떤 오류가 발생하거나 단순히 무시되나요? [answer] | 제공된 문서에는 SideViewRectTileMap 모드가 아닌 환경에서 SideviewbodyComponent를 사용할 경우 발생하는 구체적인 오류 메시지나 처리 방식(예: 로그 출력, 예외 발생, 무음 무시 등)에 대한 설명이 없습니다. 문서에서는 "현재 타일맵 모드가 SideViewRectTileMap일 때 동작합니다"라고만 명시되어 있어, 해당 조건이 충족되지 않을 경우의 구체적인 동작 방식은 알 수 없습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 횡스크롤 방식의 이동 및 점프, 렉트 타일과의 충돌 기능을 제공합니다. 중력의 영향을 받으며, 가·감속 영향은 받지 않습니다. 현재 타일맵 모드가 SideViewRectTileMap일 때 동작합니다. # Properties - **boolean ApplyClimbableRotation [Sync]** true인 경우 회전하거나 기울어진 사다리를 탄 캐릭터는 사다리의 모습을 따릅니다. false인 경우 캐릭터는 사다리의 기울기, 회전에 영향을 받지 않습니다. - **float DownJumpSpeed [Sync]** 아래
[task] | instruction_following [pass] | ⏳ 미판정 [title] | WebViewComponent [question] | WebViewComponent에서 발생하는 7가지 이벤트를 이름과 설명을 포함하여 표로 정리하세요. [answer] | WebViewComponent에서 발생하는 7가지 이벤트는 다음과 같습니다. | 이벤트 이름 | 설명 | | :--- | :--- | | `OrderInLayerChangedEvent` | Component의 OrderInLayer가 변경되었을 때 발생하는 이벤트입니다. | | `SortingLayerChangedEvent` | 컴포넌트의 SortingLayer가 변경되었을 때 발생하는 이벤트입니다. | | `WebLoadCompleteEvent` | 웹 페이지 로드 완료 시 발생하는 이벤트입니다. | | `WebLoadFailE [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | - **OrderInLayerChangedEvent** Component의 OrderInLayer가 변경되었을 때 발생하는 이벤트입니다. - **SortingLayerChangedEvent** 컴포넌트의 SortingLayer가 변경되었을 때 발생하는 이벤트입니다. - **WebLoadCompleteEvent** 웹 페이지 로드 완료 시 발생하는 이벤트입니다. - **WebLoadFailEvent** 웹 페이지 로드 실패 시 발생하는 이벤트입니다. - **WebViewClickedEvent** 웹뷰에 클릭을 입력했
[task] | instruction_following [pass] | ⏳ 미판정 [title] | WebViewComponent [question] | WebViewComponent의 Methods 중 정규화된 값(normalized value)을 인수로 받는 함수와 그 인수의 의미를 표로 정리하세요. [answer] | WebViewComponent의 Methods 중 정규화된 값(normalized value)을 인수로 받는 함수와 그 인수의 의미는 다음과 같습니다. | 함수명 | 인수 | 인수 의미 | | :--- | :--- | :--- | | `Click` | `normalizedPosition` (Vector2) | 클릭할 위치를 나타내는 정규화된 값입니다. | | `Scroll` | `scrollDelta` (Vector2) | 스크롤할 양을 나타내는 정규화된 값입니다. | | `ScrollAt` | `scrollDelta` (Vect [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | UI와 월드에 웹뷰(WebView)를 배치합니다. 웹 페이지의 조작 가능 여부, 탐색 방법 등을 설정할 수 있습니다. # Properties - **boolean ClickingEnabled [Sync]** 웹뷰에서 클릭을 가능하게 할지 여부입니다. - **DragMode DragMode** 웹뷰 내에서 드래그했을 때 어떻게 동작할지 설정합니다. - **float DragThreshold** 드래그 시 클릭으로 인식하지 않게 만들기 위한 임곗값입니다. 수치가 매우 높으면 드래그가 클릭으로 인식될 수 있습니다. - **
[task] | code [pass] | ⏳ 미판정 [title] | SideviewbodyComponent [question] | GetWallTile 메서드를 통해 저장된 벽 타일 정보를 반환하는 클라이언트 전용 접근자를 포함하는 컴포넌트 코드를 작성해줘 [answer] | SideviewbodyComponent에서 벽 타일 충돌을 감지하여 정보를 저장하고, `GetWallTile` 메서드를 통해 해당 정보를 반환하는 클라이언트 전용 컴포넌트 코드입니다. ```lua Property: [None] table WallTile = {} Method: [client only] table GetWallTile () { return self.WallTile } Event Handler: [client only] [self] HandleRectTileCollisionBeginEvent (RectTileCo [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] | single_turn [pass] | ⏳ 미판정 [title] | SideviewbodyComponent [question] | RectTileEnterEvent 와 RectTileCollisionBeginEvent 는 모두 특정 타일과 상호작용할 때 발생하는데, 두 이벤트의 발생 시점이나 처리 순서에 명확한 차이가 있나요? [answer] | 제공된 참고 문서에는 `RectTileEnterEvent`와 `RectTileCollisionBeginEvent`의 정의만 명시되어 있으며, 두 이벤트 간의 **발생 시점 차이**, **처리 순서**, 또는 **동시 발생 여부**에 대한 구체적인 설명은 포함되어 있지 않습니다. 문서에 명시된 두 이벤트의 정의는 다음과 같습니다. * **RectTileCollisionBeginEvent**: 충돌 가능한 타일과 접촉했을 때 발생하는 이벤트입니다. * **RectTileEnterEvent**: 특정 사각형 타일에 진입했을 때 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 횡스크롤 방식의 이동 및 점프, 렉트 타일과의 충돌 기능을 제공합니다. 중력의 영향을 받으며, 가·감속 영향은 받지 않습니다. 현재 타일맵 모드가 SideViewRectTileMap일 때 동작합니다. # Properties - **boolean ApplyClimbableRotation [Sync]** true인 경우 회전하거나 기울어진 사다리를 탄 캐릭터는 사다리의 모습을 따릅니다. false인 경우 캐릭터는 사다리의 기울기, 회전에 영향을 받지 않습니다. - **float DownJumpSpeed [Sync]** 아래
[task] | code [pass] | ⏳ 미판정 [title] | SpriteParticleComponent [question] | 터치 이벤트 발생 시 SpriteParticleComponent의 Play()를 호출하고 2초 후 Stop()하는 스크립트를 작성해줘 [answer] | 사용자의 요구사항(터치 이벤트 시 재생, 2초 후 정지)을 충족하기 위해 `SpriteParticleComponent`의 `Play()`와 `Stop()` 메서드를 사용하고, 시간 지연을 위해 `_TimerService:SetTimerOnce`를 활용하는 스크립트를 작성합니다. 참고 문서에 `TouchEvent` 및 `HandleTouchEvent` 이벤트 핸들러에 대한 명시적인 예제는 없지만, mLua의 표준 이벤트 처리 방식과 제공된 `InputService` 예제의 구조를 따라 `[self]` 네임스페이스에서 터치 이벤트를 [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] | SideviewbodyComponent [question] | ApplyClimbableRotation 을 true 로 설정했을 때 기울어진 사다리를 타는 캐릭터의 회전 방향은 사다리의 기울기 각도와 어떻게 일치하며, 이 값이 false 일 때 캐릭터는 어떤 자세를 유지하나요? [answer] | `ApplyClimbableRotation` 프로퍼티는 `SideviewbodyComponent`에서 기울어진 사다리를 타는 캐릭터의 자세를 제어합니다. 1. **`ApplyClimbableRotation`이 `true`일 때:** 캐릭터는 타는 사다리의 기울기나 회전을 그대로 따릅니다. 즉, 사다리가 어느 각도로 기울어져 있든 캐릭터의 회전 방향과 자세가 사다리의 각도와 일치하도록 조정됩니다. 2. **`ApplyClimbableRotation`이 `false`일 때:** 캐릭터는 사다리의 기울기나 회전의 영 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 횡스크롤 방식의 이동 및 점프, 렉트 타일과의 충돌 기능을 제공합니다. 중력의 영향을 받으며, 가·감속 영향은 받지 않습니다. 현재 타일맵 모드가 SideViewRectTileMap일 때 동작합니다. # Properties - **boolean ApplyClimbableRotation [Sync]** true인 경우 회전하거나 기울어진 사다리를 탄 캐릭터는 사다리의 모습을 따릅니다. false인 경우 캐릭터는 사다리의 기울기, 회전에 영향을 받지 않습니다. - **float DownJumpSpeed [Sync]** 아래
[task] | code [pass] | ⏳ 미판정 [title] | SideviewbodyComponent [question] | SideviewbodyComponent의 Enable 프로퍼티를 false로 설정하여 이동 기능을 일시 정지하고, _TimerService:SetTimerOnce()를 이용해 5초 후 다시 true로 설정하여 재개하는 스크립트를 작성해줘. [answer] | SideviewbodyComponent의 Enable 프로퍼티를 조작하여 이동 기능을 일시 정지하고 5초 후 재개하는 스크립트는 다음과 같습니다. ```lua Method: [server only] void OnBeginPlay() { -- 이동 기능 일시 정지 self.Entity.SideviewbodyComponent.Enable = false -- 5초 후 이동 기능 재개 _TimerService:SetTimerOnce(function() self.Entity.Sideviewbod [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 횡스크롤 방식의 이동 및 점프, 렉트 타일과의 충돌 기능을 제공합니다. 중력의 영향을 받으며, 가·감속 영향은 받지 않습니다. 현재 타일맵 모드가 SideViewRectTileMap일 때 동작합니다. # Properties - **boolean ApplyClimbableRotation [Sync]** true인 경우 회전하거나 기울어진 사다리를 탄 캐릭터는 사다리의 모습을 따릅니다. false인 경우 캐릭터는 사다리의 기울기, 회전에 영향을 받지 않습니다. - **float DownJumpSpeed [Sync]** 아래
[task] | single_turn [pass] | ⏳ 미판정 [title] | SpriteParticleComponent [question] | ParticleCount와 ParticleLifeTime 모두 float 타입으로 지정되어 있는데, 정수가 아닌 소수값을 넣으면 파티클 생성에 어떤 차이가 생기나요? [answer] | 참고 문서에는 `ParticleCount`와 `ParticleLifeTime` 프로퍼티가 `float` 타입으로 정의되어 있다는 정보만 제공하며, 소수값을 입력했을 때 파티클 생성에 발생하는 구체적인 차이(예: 확률적 생성, 보간, 반올림 처리 방식 등)에 대한 설명은 포함되어 있지 않습니다. 따라서 문서에 근거하여 소수값 입력 시의 정확한 동작 방식을 설명할 수 없습니다. [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] | SpriteParticleComponent [question] | Prewarm을 true로 설정하면 파티클이 처음 재생될 때 이미 재생 중이었던 것처럼 시작한다고 하는데, 이 효과가 Loop 설정과 어떻게 상호작용하나요? [answer] | 제공된 문서에는 `Prewarm` 프로퍼티가 `true`일 때 파티클이 처음 재생될 때 이미 재생되고 있었던 것과 같은 상태로 시작한다는 설명만 있으며, `Loop` 설정과의 상호작용에 대한 구체적인 내용은 포함되어 있지 않습니다. 따라서 두 설정이 어떻게 상호작용하는지에 대해서는 문서에 근거하여 답변할 수 없습니다. [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] | SpriteParticleComponent [question] | ApplySpriteColor를 false로 설정해도 Color의 투명도 값은 적용된다는 문구가 있는데, 구체적으로 어떤 색상 정보는 무시되고 어떤 정보는 적용되는 건가요? [answer] | 제공된 문서에는 `ApplySpriteColor`가 `false`일 때 **Color 프로퍼티의 투명도(Alpha) 값만 적용**되고, 나머지 색상 정보는 무시된다고 명시되어 있습니다. 구체적으로 어떤 색상 정보가 무시되고 어떤 정보가 적용되는지에 대한 더 자세한 기술적 설명(예: RGB 채널의 특정 처리 방식 등)은 문서에 포함되어 있지 않습니다. 다만, 문서의 문구대로 **투명도(Alpha)는 적용되고, 그 외의 색상 정보는 무시된다고 이해하시면 됩니다.** [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 스프라이트 파티클 효과를 만드는 기능을 제공합니다. # Properties - **boolean ApplySpriteColor [Sync]** 파티클이 사용할 스프라이트에 Color 프로퍼티를 적용할지 여부를 설정합니다. 프로퍼티가 false일지라도 Color의 투명도 값은 적용됩니다. - **SpriteParticleType ParticleType [Sync]** 생성할 파티클의 타입을 설정합니다. - **string SpriteRUID [Sync]** 파티클로 사용할 SpriteRUID를 설정합니다. #####
[task] | code [pass] | ⏳ 미판정 [title] | SideviewbodyComponent [question] | TilePosition 을 Clone() 으로 복사하여 저장하고, 충돌 종료 시 현재 저장된 위치와 비교하여 동일하면 WallTile 을 nil 로 초기화하는 스크립트를 작성해줘 [answer] | SideviewbodyComponent 에서 발생하는 직사각형 타일 충돌 이벤트를 처리하여 벽 타일을 감지하는 스크립트입니다. `RectTileCollisionBeginEvent` 가 발생하면 좌우 방향(`Vector2.left`, `Vector2.right`)으로 충돌한 경우에만 `TilePosition` 을 `Clone()` 을 사용하여 복사하여 저장합니다. 이후 `RectTileCollisionEndEvent` 가 발생하면 현재 저장된 위치와 충돌이 종료된 위치가 동일한지 비교하여, 동일하다면 `WallTile` 을 `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 -----------
[task] | code [pass] | ⏳ 미판정 [title] | PulleyJointComponent [question] | PulleyJointComponent의 AddJoint 메서드를 사용하여 엔티티에 도르래 조인트를 추가하고, SetRatio 메서드로 비율을 조절하며, GetJointsCount로 현재 조인트 수를 확인하는 스크립트를 작성해줘 [answer] | `PulleyJointComponent`의 `AddJoint`, `SetRatio`, `GetJointsCount` 메서드를 사용하여 도르래 조인트를 관리하는 스크립트입니다. 도르래 조인트는 두 강체(엔티티)가 지면의 앵커(groundAnchor)를 기준으로 도르래처럼 반대 방향으로 움직이도록 연결하는 물리 조인트입니다. ```lua Property: [None] Entity TargetEntity = nil Method: [server] void AddPulleyJoint (Entity target) { -- 현재 연 [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] | instruction_following [pass] | ⏳ 미판정 [title] | WebViewComponent [question] | WebViewPopupEvent와 WebLoadFailEvent를 구분하는 기준을 단계별 번호 목록으로 작성하세요. [answer] | WebViewPopupEvent와 WebLoadFailEvent를 구분하는 기준은 다음과 같습니다. 1. **발생 시점의 차이**: * **WebViewPopupEvent**: 새로운 웹 페이지가 **새로운 창으로 열렸을 때** 발생하는 이벤트입니다. * **WebLoadFailEvent**: 웹 페이지가 로딩되는 과정에서 **로드에 실패했을 때** 발생하는 이벤트입니다. 2. **발생 원인(트리거)의 차이**: * **WebViewPopupEvent**: 웹뷰 내에서 팝업 또는 새 창을 여는 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | - **OrderInLayerChangedEvent** Component의 OrderInLayer가 변경되었을 때 발생하는 이벤트입니다. - **SortingLayerChangedEvent** 컴포넌트의 SortingLayer가 변경되었을 때 발생하는 이벤트입니다. - **WebLoadCompleteEvent** 웹 페이지 로드 완료 시 발생하는 이벤트입니다. - **WebLoadFailEvent** 웹 페이지 로드 실패 시 발생하는 이벤트입니다. - **WebViewClickedEvent** 웹뷰에 클릭을 입력했
[task] | single_turn [pass] | ⏳ 미판정 [title] | SpriteParticleComponent [question] | IgnoreMapLayerCheck를 true로 설정하면 SortingLayer의 자동 치환이 안 된다고 하는데, Map Layer 이름을 직접 지정하지 않으면 어떤 오류나 비정상 동작이 발생하나요? [answer] | 제공된 문서에는 `IgnoreMapLayerCheck`를 `true`로 설정했을 때 Map Layer 이름을 직접 지정하지 않으면 발생하는 구체적인 오류나 비정상 동작에 대한 내용이 없습니다. 문서에서는 해당 프로퍼티의 설명으로 "SortingLayer에 Map Layer 이름을 지정했을 때 자동 치환을 수행하지 않습니다"라고만 명시되어 있을 뿐, 이름이 지정되지 않았을 때의 결과나 예외 처리 방식에 대한 정보는 포함되어 있지 않습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 스프라이트 파티클 효과를 만드는 기능을 제공합니다. # Properties - **boolean ApplySpriteColor [Sync]** 파티클이 사용할 스프라이트에 Color 프로퍼티를 적용할지 여부를 설정합니다. 프로퍼티가 false일지라도 Color의 투명도 값은 적용됩니다. - **SpriteParticleType ParticleType [Sync]** 생성할 파티클의 타입을 설정합니다. - **string SpriteRUID [Sync]** 파티클로 사용할 SpriteRUID를 설정합니다. #####