[task] | two_turn [pass] | ⏳ 미판정 [title] | FootholdLeaveEvent [question] | FootholdLeaveEvent 의 생성자 인자값이 nil 인 경우의 동작은 어떻게 되나요? [answer] | `FootholdLeaveEvent`의 생성자는 `FootholdLeaveEvent(Entity entity = nil, Foothold foothold = nil)`로 정의되어 있으며, 인자값이 `nil`인 경우 해당 필드에 `nil` 값이 할당됩니다. 구체적으로: 1. **`entity` 인자가 `nil`일 경우**: `Entity` 프로퍼티에 `nil`이 저장됩니다. 이는 발판에서 떨어진 엔티티 정보를 참조할 수 없음을 의미합니다. 2. **`foothold` 인자가 `nil`일 경우**: `Foothold` 프로퍼티에 [followup] | Entity 와 Foothold 를 명시적으로 지정하여 초기화하는 코드 예시를 보여주세요. [followup_answer] | `FootholdLeaveEvent`를 생성할 때 `Entity`와 `Foothold` 인자를 명시적으로 전달하는 방법입니다. 아래 예시에서는 `_EntityService`를 통해 엔티티를 가져오고, 발판 ID를 지정하여 이벤트를 초기화합니다. ```lua Method: [server] void CreateFootholdLeaveEventExample() { -- 특정 경로에 있는 엔티티를 가져옵니다. local targetEntity = _EntityService:GetEntityByPath("/maps/map01 [scores] | [judge_reason] | [source_doc] | 엔티티가 발판에서 떨어졌을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * RigidbodyComponent <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 Entity** 발판에서 떨어진 엔티티입니다. - **Footh
[task] | instruction_following [pass] | ⏳ 미판정 [title] | CreatorDataStorage [question] | BatchGetAndWait와 BatchGetAsync 메서드의 차이점을 2줄 이내로 비교하세요. [answer] | `BatchGetAndWait`는 실행을 중단하며 결과를 즉시 반환하지만, `BatchGetAsync`는 비동기로 처리되어 완료 시 콜백 함수로 결과를 전달합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 이 저장소는 크리에이터가 소유한 모든 월드에서 사용 가능하고, 저장된 데이터를 공유합니다. 메이커와 출시 환경은 저장소를 공유하지 않습니다. # Properties - **string Name [ReadOnly]** 이 CreatorDataStorage의 이름입니다. # Methods - **int32, List<string> BatchDeleteAndWait(List<string> keys) [ServerOnly] [Yield]** 입력한 키들로 데이터들을 삭제합니다. 에러 코드와 삭제에 성공한 키들을 반환합니다.
[task] | two_turn [pass] | ⏳ 미판정 [title] | FootholdEnterEvent [question] | FootholdEnterEvent 생성자는 어떤 인자를 받습니까? [answer] | `FootholdEnterEvent` 생성자는 다음 두 인자를 받습니다. * **Entity entity**: 발판에 붙은 엔티티를 지정합니다. (기본값: nil) * **Foothold foothold**: 대상 발판의 Id를 지정합니다. (기본값: nil) 구문은 다음과 같습니다. ```lua FootholdEnterEvent(Entity entity = nil, Foothold foothold = nil) ``` [followup] | FootholdEnterEvent(nil, nil)과 같이 인자를 생략하거나 기본값으로 초기화할 수 있으며, 이를 직접 생성하여 테스트 시나리오에 사용하는 방법을 설명해 주세요. [followup_answer] | 참고 문서에 따르면 `FootholdEnterEvent` 생성자의 두 인자(`entity`, `foothold`) 모두 기본값이 `nil`로 설정되어 있으므로, `FootholdEnterEvent(nil, nil)` 또는 `FootholdEnterEvent()` 와 같이 인자를 생략하고 초기화하는 것이 가능합니다. 다만, 제공된 참고 문서에는 **이벤트를 직접 생성하여 테스트 시나리오에 사용하는 구체적인 방법이나 관련 API(예: 이벤트 발송 서비스, 테스트 전용 핸들러 등)가 명시되어 있지 않습니다.** 문서에는 해당 이벤트가 [scores] | [judge_reason] | [source_doc] | 엔티티가 발판에 붙었을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * RigidbodyComponent <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 Entity** 발판에 붙은 엔티티입니다. - **Foothold
[task] | two_turn [pass] | ⏳ 미판정 [title] | TimeSpan [question] | ToFormattedString 메서드의 cultureName 파라미터에 BCP 47 표준을 따르는 문화권 이름을 전달하는 경우, mLua 환경에서 지원되지 않는 문화권 이름이 입력되면 어떻게 동작하나요? [answer] | 제시된 참고 문서에는 `ToFormattedString` 메서드의 `cultureName` 파라미터에 BCP 47 표준을 따르는 문화권 이름을 전달해야 한다는 사실과, 해당 표준이 BCP 47을 따른다는 정보만 명시되어 있습니다. 그러나 **mLua 환경에서 지원되지 않는 문화권 이름이 입력되었을 때의 구체적인 동작 방식(예: 기본 문화권으로 대체, 오류 발생, 빈 문자열 반환 등)에 대한 설명은 문서에 포함되어 있지 않습니다.** 따라서 제공된 자료만으로는 지원되지 않는 문화권 이름 입력 시의 동작을 확정적으로 답변할 수 없습 [followup] | 지원하지 않는 cultureName을 전달했을 때 발생하는 예외를 처리하고 기본 문화권으로 폴백하는 OnBeginPlay 스크립트 예제를 작성해 주세요. [followup_answer] | 제시된 참고 문서에는 `ToFormattedString` 메서드의 `cultureName` 파라미터에 BCP 47 표준을 따르는 문화권 이름을 전달해야 한다는 정보만 포함되어 있으며, **지원되지 않는 문화권 이름 입력 시 발생하는 예외 타입, 예외 처리 메커니즘(pcall 등), 또는 기본 문화권으로 폴백되는 동작에 대한 명시적인 설명이 없습니다.** mLua API 문서에 예외 처리(pcall, error 등) 관련 정보가 제공되지 않았으므로, 문서에 없는 사실을 지어내어 예외 처리 로직을 작성할 수 없습니다. 따라서 제공된 [scores] | [judge_reason] | [source_doc] | - **TimeSpan Duration()** 개체의 절댓값으로 TimeSpan을 생성해 반환합니다. - **TimeSpan Negate()** 개체의 부정값으로 TimeSpan을 생성해 반환합니다. - **string ToFormattedString(string format)** TimeSpan을 문자열로 변환해 반환합니다. format에는 표준 TimeSpan 서식 지정자 및 사용자 지정 TimeSpan 서식 지정자가 포함될 수 있습니다. - **string ToFormattedString(string format,
[task] | instruction_following [pass] | ⏳ 미판정 [title] | CreatorDataStorage [question] | BatchSetAndWait 메서드의 파라미터와 반환값을 1줄로 설명하고 [ServerOnly] 태그를 포함하세요. [answer] | [ServerOnly] BatchSetAndWait는 Dictionary<string, string> 타입의 키-값 쌍을 파라미터로 받아, 수행 완료 후 에러 코드(int32)와 저장에 성공한 키 목록(List<string>)을 반환합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 이 저장소는 크리에이터가 소유한 모든 월드에서 사용 가능하고, 저장된 데이터를 공유합니다. 메이커와 출시 환경은 저장소를 공유하지 않습니다. # Properties - **string Name [ReadOnly]** 이 CreatorDataStorage의 이름입니다. # Methods - **int32, List<string> BatchDeleteAndWait(List<string> keys) [ServerOnly] [Yield]** 입력한 키들로 데이터들을 삭제합니다. 에러 코드와 삭제에 성공한 키들을 반환합니다.
[task] | code [pass] | ⏳ 미판정 [title] | TimeSpan [question] | 문자열 "01:02:03"을 인자로 받아 TimeSpan(string timeSpanString) 생성자로 초기화한 객체의 Hours, Minutes, Seconds 프로퍼티 값을 각각 추출하여 테이블 타입으로 반환하는 스크립트를 작성해줘 [answer] | 사용자가 요청한 문자열 "01:02:03"을 `TimeSpan(string timeSpanString)` 생성자로 초기화하고, `Hours`, `Minutes`, `Seconds` 프로퍼티 값을 테이블로 반환하는 스크립트입니다. ```lua Method: [server] table GetTimeSpanComponents() { -- "01:02:03" 문자열로 TimeSpan 객체 생성 local timeSpan = TimeSpan("01:02:03") -- Hours, Minutes, Seconds 프로퍼티 추출 lo [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 시간 간격을 나타냅니다. # Properties - **int32 Days** TimeSpan의 일 구성 요소입니다. - **integer Elapsed** TimeSpan을 구성하는 밀리초 단위의 정수입니다. - **int32 Hours** TimeSpan의 시간 구성 요소입니다. - **int32 Milliseconds** TimeSpan의 밀리초 구성 요소입니다. - **int32 Minutes** TimeSpan의 분 구성 요소입니다. - **int32 Seconds** TimeSpan의 초 구성 요
[task] | two_turn [pass] | ⏳ 미판정 [title] | DateTime [question] | mLua에서 DateTime 타입의 비교와 연산은 어떤 정적 메서드를 통해 수행하나요? [answer] | mLua에서 `DateTime` 타입의 비교와 연산은 `DateTime` 네임스페이스의 정적(Static) 메서드를 통해 수행합니다. 주요 메서드는 다음과 같습니다. **비교 메서드** * `boolean Equality(DateTime left, DateTime right)`: 두 `DateTime` 값이 같은지 확인합니다. * `boolean Inequality(DateTime left, DateTime right)`: 두 `DateTime` 값이 다른지 확인합니다. * `boolean GreaterThan(Date [followup] | `GreaterThan`과 `LessThanOrEqual`을 사용해 특정 시간 범위 내 이벤트가 활성화되는 조건을 코드 예시로 보여주세요. [followup_answer] | `DateTime.GreaterThan`과 `DateTime.LessThanOrEqual`을 사용하여 특정 시간 범위 내 이벤트를 활성화하는 조건을 확인하는 코드 예시는 다음과 같습니다. 참고 문서에는 `DateTime` 객체를 생성하거나 현재 시간을 가져오는 메서드(예: `Now()`, `UtcNow` 등)가 명시되어 있지 않으므로, 아래 예제에서는 `startTime`과 `endTime`, 그리고 현재 시간 `currentTime`이 이미 `DateTime` 타입으로 준비되어 있다고 가정하고 작성합니다. ```lua Prop [scores] | [judge_reason] | [source_doc] | - **DateTime Addition(DateTime left, TimeSpan right) [Static]** 지정된 left 값에 right 값을 더한 새로운 DateTime 값을 반환합니다. - **boolean Equality(DateTime left, DateTime right) [Static]** 지정된 두 값이 같은지 확인합니다. - **boolean GreaterThan(DateTime left, DateTime right) [Static]** 지정된 left 값이 right 값보다 나중인지 판단합니다.
[task] | instruction_following [pass] | ⏳ 미판정 [title] | CreatorDataStorage [question] | CreatorDataStorage의 저장 범위(소유 월드 공유 여부)와 메이커/출시 환경 격리 여부를 3문장 이내로 서술하세요. [answer] | CreatorDataStorage는 크리에이터가 소유한 모든 월드에서 데이터를 공유하여 사용할 수 있습니다. 반면, 메이커 환경과 출시 환경은 서로 다른 저장소를 사용하므로 데이터를 공유하지 않습니다. 따라서 두 환경 간의 데이터 격리가 유지됩니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 이 저장소는 크리에이터가 소유한 모든 월드에서 사용 가능하고, 저장된 데이터를 공유합니다. 메이커와 출시 환경은 저장소를 공유하지 않습니다. # Properties - **string Name [ReadOnly]** 이 CreatorDataStorage의 이름입니다. # Methods - **int32, List<string> BatchDeleteAndWait(List<string> keys) [ServerOnly] [Yield]** 입력한 키들로 데이터들을 삭제합니다. 에러 코드와 삭제에 성공한 키들을 반환합니다.
[task] | code [pass] | ⏳ 미판정 [title] | TimeSpan [question] | TimeSpan.Zero 정적 프로퍼티를 참조하여 초기화된 변수와 TimeSpan(0, 0, 0) 생성자를 통해 생성된 변수의 TotalMilliseconds 프로퍼티 값이 동일한지 비교하여 boolean 값을 반환하는 스크립트를 작성해줘 [answer] | `TimeSpan.Zero`는 00:00:00 값을 가지는 TimeSpan을 나타내며, `TimeSpan(0, 0, 0)` 생성자는 0시간 0분 0초로 초기화된 TimeSpan을 생성합니다. 두 값 모두 0을 나타내므로 `TotalMilliseconds` 값은 동일합니다(0). 이를 확인하고 boolean 값을 반환하는 스크립트는 다음과 같습니다. ```lua Property: [None] boolean IsSame = false Method: [server] void OnBeginPlay() { local zeroSp [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 시간 간격을 나타냅니다. # Properties - **int32 Days** TimeSpan의 일 구성 요소입니다. - **integer Elapsed** TimeSpan을 구성하는 밀리초 단위의 정수입니다. - **int32 Hours** TimeSpan의 시간 구성 요소입니다. - **int32 Milliseconds** TimeSpan의 밀리초 구성 요소입니다. - **int32 Minutes** TimeSpan의 분 구성 요소입니다. - **int32 Seconds** TimeSpan의 초 구성 요
[task] | instruction_following [pass] | ⏳ 미판정 [title] | TweenLogic [question] | MakeNativeTween 함수 호출 시 인자로 전달되는 대상 컴포넌트 이름과 실행할 메서드 이름을 표(항목, 값) 형식으로 작성하세요. [answer] | ```lua | 항목 | 값 | |---|---| | 대상 컴포넌트 | `self.Entity.SpriteRendererComponent` | | 실행할 메서드 이름 | `"SetAlpha"` | ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # Examples #### MoveOffset `MoveOffset()` 함수를 활용해 움직임을 구현하는 예제입니다. ```lua Method: [server only] void OnBeginPlay () { _TweenLogic:MoveOffset(self.Entity, Vector2(6,0), 6, EaseType.QuartEaseIn) } ``` #### PlayTween `PlayTween()` 함수를 활용해 움직임을 구현하는 예제입니다. ```lua Method: [server only] void OnBegi
[task] | two_turn [pass] | ⏳ 미판정 [title] | FootholdLeaveEvent [question] | FootholdLeaveEvent 를 처리하는 스크립트 컴포넌트 구조를 보여주세요. [answer] | `FootholdLeaveEvent`는 엔티티가 발판에서 떨어질 때 발생합니다. 이 이벤트는 `RigidbodyComponent`에 의해 트리거되며, 서버와 클라이언트 양쪽에서 발생합니다. 이벤트 객체에는 다음과 같은 프로퍼티가 포함되어 있습니다. * **Entity Entity**: 발판에서 떨어진 엔티티 * **Foothold Foothold**: 대상 발판의 Id 아래는 `FootholdLeaveEvent`를 처리하는 mLua 스크립트 컴포넌트 구조입니다. ```lua Property: [None] number L [followup] | 이벤트 핸들러에서 self.Entity.TransformComponent.Position 을 활용해 떨어진 위치를 로그로 출력하는 코드는 어떻게 작성하나요? [followup_answer] | `FootholdLeaveEvent` 핸들러에서 `self.Entity.TransformComponent.Position`을 사용하여 떨어진 위치를 로그로 출력하는 코드는 다음과 같습니다. 참고로 `FootholdLeaveEvent`는 `RigidbodyComponent`에 의해 발생하며, 이벤트 객체에는 발판에서 떨어진 엔티티(`Entity`)와 대상 발판의 Id(`Foothold`)가 포함되어 있습니다. 아래 예제에서는 이벤트의 `Entity`가 스크립트가 부착된 엔티티(`self.Entity`)인지 확인한 후, 해당 엔티티의 [scores] | [judge_reason] | [source_doc] | 엔티티가 발판에서 떨어졌을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * RigidbodyComponent <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 Entity** 발판에서 떨어진 엔티티입니다. - **Footh
[task] | single_turn [pass] | ⏳ 미판정 [title] | FootholdLeaveEvent [question] | FootholdLeaveEvent의 Foothold 프로퍼티가 발판의 Id를 담고 있다고 해서, 이 값을 바로 발판 엔티티 객체로 변환해서 사용할 수 있나요? [answer] | FootholdLeaveEvent의 Foothold 프로퍼티는 발판의 Id를 담고 있지만, 이 값을 발판 엔티티 객체로 직접 변환하는 API가 제공되지 않습니다. 참고 문서에 따르면 Foothold 프로퍼티의 타입은 Foothold이며, 설명은 "대상 발판의 Id입니다"로 되어 있습니다. 그러나 이 Id 값을 사용하여 발판 엔티티를 가져오는 메서드나 함수가 문서에 명시되어 있지 않습니다. 발판 엔티티를 가져오려면 _EntityService:GetEntityByPath("/maps/map01/obj") 같은 방식으로 경로가 필요하 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 엔티티가 발판에서 떨어졌을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * RigidbodyComponent <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 Entity** 발판에서 떨어진 엔티티입니다. - **Footh
[task] | single_turn [pass] | ⏳ 미판정 [title] | FootholdLeaveEvent [question] | RigidbodyComponent가 Server와 Client 양쪽에서 이벤트를 발생시킨다고 했는데, 클라이언트 측에서 이 이벤트를 처리하면 서버와 데이터 불일치가 발생할 수 있나요? [answer] | 제시된 문서의 정보만으로는 "클라이언트 측에서 이벤트를 처리하면 서버와 데이터 불일치가 발생하는지"에 대한 명확한 답변을 드리기 어렵습니다. 문서에는 `FootholdLeaveEvent`가 `RigidbodyComponent`에 의해 발생하며, 발생 공간(Space)이 **Server, Client**인 것만 명시되어 있습니다. 또한 예제 코드에서는 `[client]` 또는 `[client only]` 메서드와 `[self]` 이벤트 핸들러가 함께 사용될 수 있음을 보여줄 뿐, 클라이언트에서만 이벤트를 처리했을 때 발생하는 동기화 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 엔티티가 발판에서 떨어졌을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * RigidbodyComponent <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 Entity** 발판에서 떨어진 엔티티입니다. - **Footh
[task] | single_turn [pass] | ⏳ 미판정 [title] | TweenLogic [question] | Tweener 객체를 생성한 후 EaseType을 변경하여 보간 방식을 다르게 적용할 수 있는 방법이 있나요? [answer] | 제공된 문서에는 `Tweener` 객체를 생성한 후 `EaseType`을 변경하는 메서드나 프로퍼티에 대한 정보가 포함되어 있지 않습니다. 문서에 명시된 `RotateTo`, `ScaleTo` 등 Tweener 생성 함수들은 실행 시점에 `EaseType type` 매개변수를 통해 보간 방식을 지정하도록 되어 있으며, 생성 후 보간 방식을 수정할 수 있는 API는 문서에 언급되어 있지 않습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | ffset을 축으로 angle만큼 반시계 방향으로 회전시키는 Tweener를 생성하고 재생합니다. - **Tweener RotateTo(Entity entity, float angle, float duration, EaseType type)** entity를 angle만큼 반시계 방향으로 회전시키는 Tweener를 생성하고 재생합니다. - **Tweener ScaleTo(Entity entity, Vector2 targetScale, float duration, EaseType type)** entity를 targetScal
[task] | two_turn [pass] | ⏳ 미판정 [title] | TweenLogic [question] | `TweenLogic`의 `RotateTo`와 `ScaleTo` 메서드 호출 시 `EaseType` 매개변수에 어떤 값을 전달할 수 있나요? [answer] | 제공된 참고 문서에는 `RotateTo`와 `ScaleTo` 메서드의 `EaseType` 매개변수에 전달할 수 있는 구체적인 값(열거형 상수 등)이 명시되어 있지 않습니다. 문서에는 해당 메서드의 시그니처와 기능 설명만 제공되며, `EaseType` 타입의 실제 사용 가능한 값 목록은 포함되어 있지 않습니다. [followup] | `EaseType`의 구체적인 상수 목록과 각 이징 곡선의 시각적 차이점을 설명해 주세요. [followup_answer] | 제공된 참고 문서에는 `EaseType`의 구체적인 상수 목록이나 각 이징 곡선의 시각적 차이점에 대한 정보가 포함되어 있지 않습니다. 따라서 해당 질문에 대한 답변을 드릴 수 없습니다. [scores] | [judge_reason] | [source_doc] | ffset을 축으로 angle만큼 반시계 방향으로 회전시키는 Tweener를 생성하고 재생합니다. - **Tweener RotateTo(Entity entity, float angle, float duration, EaseType type)** entity를 angle만큼 반시계 방향으로 회전시키는 Tweener를 생성하고 재생합니다. - **Tweener ScaleTo(Entity entity, Vector2 targetScale, float duration, EaseType type)** entity를 targetScal
[task] | two_turn [pass] | ⏳ 미판정 [title] | TweenLogic [question] | TweenLogic의 Ease 메서드에서 duration이 0이거나 tweenTime 범위를 벗어나면 어떤 값이 반환되는지 [answer] | `TweenLogic:Ease` 메서드에서 `duration`이 0이거나 `tweenTime`의 값이 범위를 벗어나는 경우 반환되는 값은 다음과 같습니다. 1. **duration이 0인 경우**: * `endValue` (끝값)를 반환합니다. 2. **tweenTime이 0보다 작거나 duration보다 큰 경우**: * **예상치 못한 값**이 반환될 수 있습니다. * 문서에는 이 경우 구체적으로 어떤 값(예: 0, startValue, 또는 무한대 등)이 반환되는지 명시되어 있지 않으므로 [followup] | duration이 0일 때와 tweenTime이 duration보다 클 때의 구체적인 반환값과 예외 처리 방법을 알려주세요. [followup_answer] | `TweenLogic:Ease` 메서드에서 `duration`이 0이거나 `tweenTime`이 `duration`보다 큰 경우의 반환값과 예외 처리 방법은 다음과 같습니다. ### 1. 구체적인 반환값 * **duration이 0인 경우**: `endValue`(끝값)가 반환됩니다. * **tweenTime이 duration보다 큰 경우**: 문서에는 **"예상치 못한 값"**이 반환될 수 있다고 명시되어 있습니다. * 0, `startValue`, `endValue` 중 특정 값으로 고정되는지, NaN 또는 [scores] | [judge_reason] | [source_doc] | Tween 관련 기능들을 제공합니다. # Methods - **float Ease(float startValue, float endValue, float duration, EaseType type, float tweenTime)** 시작값과 끝값 사이의 보간을 수행합니다. tweenTime을 duration으로 나눈 값으로 보간을 수행합니다. duration이 0인 경우 endValue를 반환하며, tweenTime이 0보다 작거나 duration보다 큰 경우 예상치 못한 값이 반환될 수 있습니다. - **Tweener Ma
[task] | two_turn [pass] | ⏳ 미판정 [title] | PixelRendererComponent [question] | OrderInLayer 와 SortingLayer 속성이 겹치는 엔티티의 가독성을 결정할 때, Map Layer 가 아닌 커스텀 레이어를 사용하면서 IgnoreMapLayerCheck 를 true 로 설정해야 하는 구체적인 상황은 무엇인가요? [answer] | 제공된 문서에 따르면, `SortingLayer`와 `OrderInLayer`는 겹친 엔티티의 표시 우선순위를 결정하는 속성입니다. 구체적으로 `SortingLayer`는 레이어 단위의 우선순위를, `OrderInLayer`는 같은 레이어 내부에서 수가 클수록 앞에 보이도록 하는 세부 우선순위를 담당합니다. `IgnoreMapLayerCheck` 속성은 `SortingLayer`에 **Map Layer** 이름을 지정했을 때 발생하는 자동 치환을 방지하기 위한 옵션입니다. 따라서 **Map Layer가 아닌 커스텀 레이어**를 [followup] | IgnoreMapLayerCheck 가 false 일 때 Map Layer 이름이 자동 치환되는 로직이 SortingLayer 우선순위 계산에 어떤 영향을 주는지 코드 예시로 보여주세요. [followup_answer] | 제공된 문서에는 `IgnoreMapLayerCheck`가 `false`일 때 "자동 치환"이 구체적으로 어떤 로직으로 수행되는지, 그리고 그 치환 결과가 `SortingLayer`의 우선순위 계산에 어떤 수치적이나 구조적 영향을 미치는지에 대한 **구체적인 동작 원리나 매핑 규칙이 설명되어 있지 않습니다.** 문서에는 `IgnoreMapLayerCheck`의 정의가 다음과 같이만 기술되어 있습니다: > "SortingLayer에 Map Layer 이름을 지정했을 때 자동 치환을 수행하지 않습니다." 이 문장은 "자동 치환"이라는 [scores] | [judge_reason] | [source_doc] | 원하는 스프라이트를 그릴 수 있는 기능을 제공합니다. 크기는 16x16 이하로 사용하는 것을 권장합니다. # Properties - **int32 Height [ReadOnly]** 스프라이트의 세로 길이입니다. - **boolean IgnoreMapLayerCheck** SortingLayer에 Map Layer 이름을 지정했을 때 자동 치환을 수행하지 않습니다. - **int32 OrderInLayer** 같은 Layer 내의 우선순위를 결정합니다. 수가 클수록 앞에 보입니다. - **string SortingLa
[task] | single_turn [pass] | ⏳ 미판정 [title] | TweenLogic [question] | _TweenLogic:MoveOffset에서 사용된 EaseType.QuartEaseIn 외에도 어떤 EaseType 값을 사용할 수 있나요? [answer] | 제공된 참고 문서에는 `EaseType.QuartEaseIn`과 `EaseType.Linear` 두 가지 값만 예제 코드에 등장합니다. 문서에는 `EaseType`의 전체 열거형 값 목록이나 다른 이징 타입에 대한 정의가 포함되어 있지 않으므로, 이 두 가지 외에 사용할 수 있는 `EaseType` 값은 확인할 수 없습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # Examples #### MoveOffset `MoveOffset()` 함수를 활용해 움직임을 구현하는 예제입니다. ```lua Method: [server only] void OnBeginPlay () { _TweenLogic:MoveOffset(self.Entity, Vector2(6,0), 6, EaseType.QuartEaseIn) } ``` #### PlayTween `PlayTween()` 함수를 활용해 움직임을 구현하는 예제입니다. ```lua Method: [server only] void OnBegi
[task] | single_turn [pass] | ⏳ 미판정 [title] | TweenLogic [question] | ScaleTo 메서드에서 targetScale 인자에 Vector2(0, 0)을 전달하면 엔티티가 어떻게 처리되는지 궁금합니다. [answer] | `ScaleTo` 메서드는 엔티티를 `targetScale` 값으로 확대하거나 축소하는 Tweener를 생성하고 재생합니다. `Vector2(0, 0)`을 `targetScale` 인자로 전달하면, 해당 엔티티의 스케일(scale)이 X축과 Y축 모두 0이 되도록 애니메이션됩니다. 2D 환경에서 스케일이 0이 되면 엔티티는 **보이지 않게(크기가 0으로 축소되어)** 처리됩니다. 참고 문서에는 `ScaleTo(Entity entity, Vector2 targetScale, float duration, EaseType type)` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | ffset을 축으로 angle만큼 반시계 방향으로 회전시키는 Tweener를 생성하고 재생합니다. - **Tweener RotateTo(Entity entity, float angle, float duration, EaseType type)** entity를 angle만큼 반시계 방향으로 회전시키는 Tweener를 생성하고 재생합니다. - **Tweener ScaleTo(Entity entity, Vector2 targetScale, float duration, EaseType type)** entity를 targetScal
[task] | instruction_following [pass] | ⏳ 미판정 [title] | TweenLogic [question] | PlayTween 예제에서 TweenCallback 함수 내부에서 위치 업데이트 시 사용하는 연산자 및 메서드 호출 순서를 3단계 번호 목록으로 정리하세요. [answer] | 제공된 문서의 `PlayTween` 예제를 기준으로, TweenCallback 함수 내부에서 위치를 업데이트할 때 사용되는 연산자 및 메서드 호출 순서는 다음과 같습니다. 1. `tweenValue` 파라미터에 대해 `:ToVector3()` 메서드를 호출하여 `Vector3` 타입으로 변환합니다. 2. `originalPosition` (Vector3)과 단계 1에서 얻은 결과값(`Vector3`) 사이에서 `+` (더하기) 연산자를 사용하여 벡터를 합산합니다. 3. 합산된 결과를 `self.Entity.TransformComp [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # Examples #### MoveOffset `MoveOffset()` 함수를 활용해 움직임을 구현하는 예제입니다. ```lua Method: [server only] void OnBeginPlay () { _TweenLogic:MoveOffset(self.Entity, Vector2(6,0), 6, EaseType.QuartEaseIn) } ``` #### PlayTween `PlayTween()` 함수를 활용해 움직임을 구현하는 예제입니다. ```lua Method: [server only] void OnBegi
[task] | single_turn [pass] | ⏳ 미판정 [title] | TimeSpan [question] | TimeSpan의 Elapsed 속성은 다른 구성 요소(일, 시간, 분 등)와 달리 밀리초 단위의 정수로만 값을 가지는데, 이를 통해 전체 시간 간격을 정확히 계산하는 방법은 무엇인가요? [answer] | TimeSpan의 `Elapsed` 속성은 해당 시간 간격을 밀리초 단위의 정수 하나로 표현한 값입니다. `Days`, `Hours`, `Minutes`, `Seconds`, `Milliseconds`와 같은 개별 구성 요소는 각각 해당 단위 내의 값만 가지는 반면, `Elapsed`는 전체 시간 간격을 하나의 밀리초 값으로 통합하여 제공합니다. 전체 시간 간격을 정확히 계산하고 싶다면, 개별 구성 요소를 수동으로 변환하여 더하는 대신 `Elapsed` 속성을 직접 사용하는 것이 가장 정확하고 간편합니다. 예를 들어, 특정 Tim [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 시간 간격을 나타냅니다. # Properties - **int32 Days** TimeSpan의 일 구성 요소입니다. - **integer Elapsed** TimeSpan을 구성하는 밀리초 단위의 정수입니다. - **int32 Hours** TimeSpan의 시간 구성 요소입니다. - **int32 Milliseconds** TimeSpan의 밀리초 구성 요소입니다. - **int32 Minutes** TimeSpan의 분 구성 요소입니다. - **int32 Seconds** TimeSpan의 초 구성 요
[task] | single_turn [pass] | ⏳ 미판정 [title] | FootholdLeaveEvent [question] | 발판에서 떨어질 때만 트리거되는 FootholdLeaveEvent와, 발판에 착지할 때 발생하는 이벤트의 차이는 무엇이며 둘을 함께 사용하여 착지 판정을 만들 수 있나요? [answer] | 제시된 참고 문서에는 `FootholdLeaveEvent`에 대한 정보만 포함되어 있으며, 발판에 착지할 때 발생하는 이벤트(예: `FootholdEnterEvent` 등)에 대한 정의, 속성, 또는 사용 방법은 문서에 존재하지 않습니다. 따라서 질문하신 "착지 시 발생하는 이벤트"와 `FootholdLeaveEvent`의 차이, 그리고 둘을 함께 사용한 착지 판정 코드는 문서에 근거하여 답변할 수 없습니다. 참고 문서에 근거할 수 있는 `FootholdLeaveEvent`의 정보만 정리하면 다음과 같습니다. ### Footh [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 엔티티가 발판에서 떨어졌을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * RigidbodyComponent <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 Entity** 발판에서 떨어진 엔티티입니다. - **Footh
[task] | single_turn [pass] | ⏳ 미판정 [title] | FootholdLeaveEvent [question] | 이벤트 핸들러에서 Foothold 프로퍼티의 Id 값이 nil로 오는 경우가 있는데, 이는 어떤 원인으로 발생하는지 알려주세요. [answer] | FootholdLeaveEvent 핸들러에서 Foothold 프로퍼티의 Id 값이 nil로 오는 원인은, 이벤트가 발생한 시점에 대상 발판(Foothold)이 이미 삭제되었거나, 발판의 식별 정보가 유효하지 않은 상태이기 때문입니다. FootholdLeaveEvent는 엔티티가 발판에서 떨어졌을 때 발생하며, Foothold 프로퍼티는 해당 발판의 Id를 저장합니다. 만약 엔티티가 발판을 떠나는 순간 발판 엔티티가 서버에서 제거되거나(예: 일시적인 발판, 스크립트로 삭제되는 발판 등) 발판의 Id가 초기화되지 않은 특수한 경우라면 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 엔티티가 발판에서 떨어졌을 때 발생하는 이벤트입니다. 이 Event는 아래 API에 의해 발생합니다. * RigidbodyComponent <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 Entity** 발판에서 떨어진 엔티티입니다. - **Footh
[task] | instruction_following [pass] | ⏳ 미판정 [title] | TweenLogic [question] | 문서에 제시된 MoveOffset, PlayTween, Ease 함수의 예제 코드를 각 1개씩만 추출하여 출력하고, 함수 이름과 실행 공간([server only])을 주석으로만 명시하세요. [answer] | ```lua -- MoveOffset / [server only] Method: [server only] void OnBeginPlay () { _TweenLogic:MoveOffset(self.Entity, Vector2(6,0), 6, EaseType.QuartEaseIn) } -- PlayTween / [server only] Method: [server only] void OnBeginPlay () { local originalPosition = self.Entity.TransformComponent.Position [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # Examples #### MoveOffset `MoveOffset()` 함수를 활용해 움직임을 구현하는 예제입니다. ```lua Method: [server only] void OnBeginPlay () { _TweenLogic:MoveOffset(self.Entity, Vector2(6,0), 6, EaseType.QuartEaseIn) } ``` #### PlayTween `PlayTween()` 함수를 활용해 움직임을 구현하는 예제입니다. ```lua Method: [server only] void OnBegi
[task] | two_turn [pass] | ⏳ 미판정 [title] | PixelRendererComponent [question] | PixelRendererComponent 로 스프라이트 픽셀을 조작할 때 좌표 체계와 색상 데이터 형식(행 우선, RGBA int)은 어떻게 적용되는가요? [answer] | PixelRendererComponent의 픽셀 조작 시 좌표 체계와 색상 데이터 형식은 다음과 같이 적용됩니다. **1. 좌표 체계** * **시작점:** 좌측 하단을 `(1, 1)`으로 기준으로 사용합니다. * **범위:** 스프라이트의 가로 길이는 `Width`, 세로 길이는 `Height` 프로퍼티를 통해 확인할 수 있습니다. * **인덱스:** `SetPixel(x, y, color)` 또는 `GetPixel(x, y)` 메서드를 사용할 때, x는 가로 방향(1~Width), y는 세로 방향(1~Height)의 [followup] | SetPixel 메서드에서 좌측 하단이 (1, 1)이라고 했는데, GetPixelsAsRGBAInt 로 가져온 데이터를 다시 SetPixelsByRGBAInt 에 넣을 때 인덱스 변환이 필요한가요? [followup_answer] | 인덱스 변환이 **필요하지 않습니다**. `GetPixelsAsRGBAInt()`와 `SetPixelsByRGBAInt()` 모두 동일한 **행 우선(Row-major)** 순서를 기반으로 데이터를 처리하기 때문입니다. 1. **GetPixelsAsRGBAInt()**: 스프라이트의 픽셀을 행 우선 순서대로 정수 배열로 반환합니다. * 인덱스 1: (1,1) 픽셀 * 인덱스 2: (2,1) 픽셀 * ... * 인덱스 N: (Width*Height) 번째 픽셀 2. **SetPixel [scores] | [judge_reason] | [source_doc] | 원하는 스프라이트를 그릴 수 있는 기능을 제공합니다. 크기는 16x16 이하로 사용하는 것을 권장합니다. # Properties - **int32 Height [ReadOnly]** 스프라이트의 세로 길이입니다. - **boolean IgnoreMapLayerCheck** SortingLayer에 Map Layer 이름을 지정했을 때 자동 치환을 수행하지 않습니다. - **int32 OrderInLayer** 같은 Layer 내의 우선순위를 결정합니다. 수가 클수록 앞에 보입니다. - **string SortingLa
[task] | two_turn [pass] | ⏳ 미판정 [title] | TimeSpan [question] | TimeSpan의 연산자(Addition, Subtraction, Comparison) 중 밀리초 단위 반올림이 발생하는 FromDays, FromHours 메서드와 비교했을 때 정밀도 차이가 있나요? [answer] | 제공된 문서에 따르면, `TimeSpan`의 연산자(`Addition`, `Subtraction`)와 비교 연산자(`Equality`, `GreaterThan`, etc.) 자체에 대해 "밀리초 단위 반올림"이 발생한다는 설명은 없습니다. 문서에서 **밀리초 단위로 반올림**된다고 명시된 것은 오직 정적 생성 메서드인 `FromDays`, `FromHours`, `FromMinutes`, `FromSeconds`에만 해당합니다. `FromMilliseconds`은 반올림 없이 지정한 밀리초를 그대로 사용한다고 명시되어 있습니다. [followup] | FromMilliseconds로 생성한 두 TimeSpan을 Subtraction 연산한 결과가 0이 아닌 미세한 오차를 보일 때, Equality 연산자로 비교하면 true를 반환하는지 확인하는 코드를 작성해 주세요. [followup_answer] | 제공된 문서에는 `Subtraction` 연산 시 발생하는 부동소수점 오차나 정밀도 손실에 대한 설명이 없으며, `Equality` 연산자가 미세한 오차를 허용하는지(예: epsilon 비교)에 대한 정보도 포함되어 있지 않습니다. 문서상 `Equality` 연산자는 단순히 "지정된 두 값이 같은지 확인"한다고만 정의되어 있으므로, 수학적으로 동일한 값인지에 따라 `true`/`false`를 반환한다고 해석할 수 있습니다. 따라서 `Subtraction` 결과가 0에 아주 가까운 미세한 오차값(예: 0.000001초)일 경우, ` [scores] | [judge_reason] | [source_doc] | - **TimeSpan Duration()** 개체의 절댓값으로 TimeSpan을 생성해 반환합니다. - **TimeSpan Negate()** 개체의 부정값으로 TimeSpan을 생성해 반환합니다. - **string ToFormattedString(string format)** TimeSpan을 문자열로 변환해 반환합니다. format에는 표준 TimeSpan 서식 지정자 및 사용자 지정 TimeSpan 서식 지정자가 포함될 수 있습니다. - **string ToFormattedString(string format,
[task] | single_turn [pass] | ⏳ 미판정 [title] | TweenLogic [question] | MakeNativeTween을 사용해서 SpriteRendererComponent의 SetAlpha를 트윈할 때, 인자 순서와 콜백 처리는 어떻게 되나요? [answer] | `MakeNativeTween()` 함수를 사용하여 `SpriteRendererComponent`의 `SetAlpha()`를 트윈할 때, 인자 순서는 다음과 같습니다. ```lua local tweener = _TweenLogic:MakeNativeTween(1, 0, 3, EaseType.Linear, self.Entity.SpriteRendererComponent, "SetAlpha") tweener:Play() ``` 1. **첫 번째 인자 (`1`)**: 시작 값 (Start Value) 2. **두 번째 인자 (`0 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # Examples #### MoveOffset `MoveOffset()` 함수를 활용해 움직임을 구현하는 예제입니다. ```lua Method: [server only] void OnBeginPlay () { _TweenLogic:MoveOffset(self.Entity, Vector2(6,0), 6, EaseType.QuartEaseIn) } ``` #### PlayTween `PlayTween()` 함수를 활용해 움직임을 구현하는 예제입니다. ```lua Method: [server only] void OnBegi
[task] | code [pass] | ⏳ 미판정 [title] | TweenLogic [question] | Entity의 TransformComponent.Position을 이용해 MoveTo 메서드로 특정 좌표까지 2초간 EaseType.EaseInOut 보간으로 이동시키는 스크립트를 작성해줘 [answer] | `_TweenLogic`의 `MoveTo` 메서드를 사용하면 Entity를 특정 좌표까지 이동시키는 Tweener를 생성하고 즉시 재생할 수 있습니다. 요청하신 조건(2초, `EaseType.EaseInOut`)에 맞춰 작성한 스크립트는 다음과 같습니다. ```lua Method: [server only] void OnBeginPlay () { local targetPosition = Vector2(10, 5) -- 이동하고 싶은 목적지 좌표 _TweenLogic:MoveTo(self.Entity, targetPo [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | Tween 관련 기능들을 제공합니다. # Methods - **float Ease(float startValue, float endValue, float duration, EaseType type, float tweenTime)** 시작값과 끝값 사이의 보간을 수행합니다. tweenTime을 duration으로 나눈 값으로 보간을 수행합니다. duration이 0인 경우 endValue를 반환하며, tweenTime이 0보다 작거나 duration보다 큰 경우 예상치 못한 값이 반환될 수 있습니다. - **Tweener Ma
[task] | code [pass] | ⏳ 미판정 [title] | TweenLogic [question] | Vector2 타입의 PlayTween 메서드를 활용해 시작점과 끝점 사이의 위치를 보간하며, 매 프레임마다 보간된 값을 받아 Entity의 TransformComponent.Position에 적용하는 스크립트를 작성해줘 [answer] | `_TweenLogic`의 `PlayTween` 메서드를 사용해야 합니다. 이 메서드는 `Vector2` 타입의 시작값, 끝값, 지속 시간, 이징 타입, 그리고 보간된 값을 매개변수로 받는 함수(`tweenFunction`)를 인자로 받습니다. `PlayTween`은 Tweener를 생성하고 자동으로 재생하며, 수행 중에 매 프레임마다 보간된 `Vector2` 값을 `tweenFunction`에 전달합니다. Entity의 `TransformComponent.Position`은 `Vector3` 타입이므로, 보간된 `Vector2` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | Tween 관련 기능들을 제공합니다. # Methods - **float Ease(float startValue, float endValue, float duration, EaseType type, float tweenTime)** 시작값과 끝값 사이의 보간을 수행합니다. tweenTime을 duration으로 나눈 값으로 보간을 수행합니다. duration이 0인 경우 endValue를 반환하며, tweenTime이 0보다 작거나 duration보다 큰 경우 예상치 못한 값이 반환될 수 있습니다. - **Tweener Ma
[task] | single_turn [pass] | ⏳ 미판정 [title] | TweenLogic [question] | RotateTo와 RotateAround 메서드의 차이는 무엇이며, 특정 축을 중심으로 회전할 때 각각 어떻게 사용해야 하나요? [answer] | 제공된 참고 문서에는 `RotateTo` 메서드에 대한 설명이 포함되어 있지만, `RotateAround` 메서드에 대한 정의나 사용 예시는 포함되어 있지 않습니다. 따라서 두 메서드의 정확한 차이점을 비교하거나 `RotateAround`의 사용법을 설명해 드릴 수 없습니다. 문서에 명시된 `RotateTo` 메서드의 기능과 사용법은 다음과 같습니다. **`RotateTo` 메서드** - **기능**: 대상 엔티티를 반시계 방향으로 `angle`만큼 회전시키는 Tweener를 생성하고 재생합니다. - **시그니처**: `Twee [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | ffset을 축으로 angle만큼 반시계 방향으로 회전시키는 Tweener를 생성하고 재생합니다. - **Tweener RotateTo(Entity entity, float angle, float duration, EaseType type)** entity를 angle만큼 반시계 방향으로 회전시키는 Tweener를 생성하고 재생합니다. - **Tweener ScaleTo(Entity entity, Vector2 targetScale, float duration, EaseType type)** entity를 targetScal