[task] | instruction_following [pass] | ⏳ 미판정 [title] | ImageComponent [question] | ImageComponent의 SetNativeSize() 메서드를 호출하는 mLua 코드만 출력하고, 해당 메서드가 수행하는 동작은 코드 주석으로만 설명하세요. [answer] | ```lua Method: [client only] void ApplyNativeSize () { -- 이미지를 원본 크기로 조정합니다. self.Entity.SpriteGUIRendererComponent:SetNativeSize() } ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | SpriteGUIRendererComponent등과 같이 UI에 이미지를 출력하는 컴포넌트의 부모 컴포넌트입니다. 엔티티에 직접 추가해서 사용할 수 없습니다. # Properties - **Color Color** 이미지의 기본 색상을 설정합니다 - **boolean DropShadow** 이미지의 그림자 출력 여부를 설정합니다. - **float DropShadowAngle** 그림자를 출력할 각도를 설정합니다 - **Color DropShadowColor** 그림자 색상을 설정합니다. - **float Drop
[task] | single_turn [pass] | ⏳ 미판정 [title] | Info Level [question] | 스크립트에서 동일한 이름을 가진 로컬 변수를 두 번 선언했을 때 LIA-1116이 뜨는 것과, 함수를 중복 정의했을 때 뜨는 LIA-1119는 컴파일 단계에서 모두 즉각 실패하는 건가요? [answer] | 네, 둘 다 컴파일 단계에서 즉각 실패합니다. mLua는 컴파일 시점에 코드 내의 이름 충돌을 검사합니다. 1. **LIA-1116 (DuplicateLocal)**: 동일한 스코프 내에서 동일한 이름을 가진 로컬 변수를 두 번 선언한 경우입니다. 2. **LIA-1119 (DuplicateFunction)**: 동일한 스코프 내에서 동일한 이름을 가진 함수를 두 번 정의한 경우입니다. 이러한 중복 선언은 런타임이 아닌 **컴파일(또는 파싱) 단계**에서 오류로 보고되고 스크립트 실행이 차단됩니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | | ID | 이름 | 설명 | |---|---|---| | LIA-1113 | UnresolvedSymbol | 심볼을 찾을 수 없습니다. | | LIA-1114 | UnresolvedMember | 멤버를 찾을 수 없습니다. | | LIA-1115 | UnresolvedFunction | 함수를 찾을 수 없습니다. | | LIA-1116 | DuplicateLocal | 로컬 변수를 중복 선언했습니다. | | LIA-1119 | DuplicateFunction | 함수를 중복 정의했습니다. | | LIA-3025 | Request
[task] | instruction_following [pass] | ⏳ 미판정 [title] | ImageComponent [question] | ImageComponent에서 그림자 관련 프로퍼티만 추출하여 '프로퍼티 이름'과 '설명' 두 개의 열로 구성된 표로 정리하세요. [answer] | ImageComponent에서 그림자 관련 프로퍼티는 다음과 같습니다. | 프로퍼티 이름 | 설명 | | :--- | :--- | | DropShadow | 이미지의 그림자 출력 여부를 설정합니다. | | DropShadowAngle | 그림자를 출력할 각도를 설정합니다. | | DropShadowColor | 그림자 색상을 설정합니다. | | DropShadowDistance | 이미지와 그림자의 거리입니다. | [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | SpriteGUIRendererComponent등과 같이 UI에 이미지를 출력하는 컴포넌트의 부모 컴포넌트입니다. 엔티티에 직접 추가해서 사용할 수 없습니다. # Properties - **Color Color** 이미지의 기본 색상을 설정합니다 - **boolean DropShadow** 이미지의 그림자 출력 여부를 설정합니다. - **float DropShadowAngle** 그림자를 출력할 각도를 설정합니다 - **Color DropShadowColor** 그림자 색상을 설정합니다. - **float Drop
[task] | code [pass] | ⏳ 미판정 [title] | MobileGyroscopeService [question] | _MobileGyroscopeService:StartAndWait()로 시작하고 GetRotationRate()로 값을 받아서 _UIToast:ShowMessage로 상태 알림을 띄우는 스크립트를 작성해줘 [answer] | `_MobileGyroscopeService`는 모바일 기기의 자이로스코프 센서를 제어하고 데이터를 읽어오는 서비스입니다. `StartAndWait()`는 자이로스코프를 활성화하고 초기화가 완료될 때까지 기다렸다가 성공 여부에 따라 `true` 또는 `false`를 반환합니다. `GetRotationRate()`는 기기의 순간 회전 속도(각속도)를 반환하며, 이 값은 `Vector2` 형태로 사용할 수 있습니다. 요청하신 조건(시작 시 `StartAndWait()` 호출, `GetRotationRate()`로 값 수신, `_UIT [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 자이로스코프 센서를 활용해 공 모양 Entity를 움직이는 예제입니다. ```lua Property: [None] number ForcePower = 100 Method: [client only] void OnBeginPlay () { if _MobileGyroscopeService:IsHWSupported() then local enabled = _MobileGyroscopeService:StartAndWait() if enabled then _UIToast:ShowMessage("Gyroscope Starte
[task] | single_turn [pass] | ⏳ 미판정 [title] | Info Level [question] | LIA-3045 InfoMessage가 '연결 상태 변경' 또는 '노드 반환' 시 발생한다고 하는데, 이 이벤트를 수신하기 위해 특정 Event Handler를 설정하거나 추가적인 코드 구현이 필요한가요? [answer] | LIA-3045 `InfoMessage`는 특정 Event Handler를 설정하거나 추가적인 코드 구현이 필요 없이 발생하는 정보 레벨 로그 메시지입니다. 제시된 문서에 따르면, `InfoMessage`는 "연결 상태가 변경되었을 때, 노드가 반환되었을 때 발생합니다"라고 설명되어 있으며, 이는 시스템이 자동으로 출력하는 로그에 해당합니다. 따라서 개발자가 `Handle...Event` 형태의 이벤트 핸들러를 작성하거나 `OnUpdate` 등에서 체크하는 로직을 구현할 필요가 없습니다. 참고로, 제공된 문서에는 `InfoMes [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | | ID | 이름 | 설명 | |---|---|---| | LIA-1113 | UnresolvedSymbol | 심볼을 찾을 수 없습니다. | | LIA-1114 | UnresolvedMember | 멤버를 찾을 수 없습니다. | | LIA-1115 | UnresolvedFunction | 함수를 찾을 수 없습니다. | | LIA-1116 | DuplicateLocal | 로컬 변수를 중복 선언했습니다. | | LIA-1119 | DuplicateFunction | 함수를 중복 정의했습니다. | | LIA-3025 | Request
[task] | instruction_following [pass] | ⏳ 미판정 [title] | ImageComponent [question] | Type이 Filled일 때 사용되는 프로퍼티와, 그 프로퍼티가 적용되는 조건(다른 프로퍼티 값)을 '프로퍼티'와 '적용 조건' 두 개의 열로 구분하여 표로 작성하세요. [answer] | Type이 `Filled`일 때 사용되는 프로퍼티와 적용 조건은 다음과 같습니다. | 프로퍼티 | 적용 조건 | | :--- | :--- | | `FillAmount` | `Type`이 `Filled`로 설정되어 있을 때 | | `FillMethod` | `Type`이 `Filled`일 때 | | `FillOrigin` | `Type`이 `Filled`로 설정되어 있을 때 | | `FillClockWise` | `FillMethod`가 `Radial90`, `Radial180`, `Radial360`으로 설정되어 있을 때 | [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | SpriteGUIRendererComponent등과 같이 UI에 이미지를 출력하는 컴포넌트의 부모 컴포넌트입니다. 엔티티에 직접 추가해서 사용할 수 없습니다. # Properties - **Color Color** 이미지의 기본 색상을 설정합니다 - **boolean DropShadow** 이미지의 그림자 출력 여부를 설정합니다. - **float DropShadowAngle** 그림자를 출력할 각도를 설정합니다 - **Color DropShadowColor** 그림자 색상을 설정합니다. - **float Drop
[task] | single_turn [pass] | ⏳ 미판정 [title] | Error Level [question] | 스크립트에서 LEA-3056 스택 오버플로우가 발생하면 무한 재귀 호출 때문이라는 것을 어떻게 확인하나요? [answer] | 제공된 참고 문서에는 LEA-3056 스택 오버플로우 에러 코드와 그 의미("스택 오버플로우가 발생했습니다.")만 정의되어 있을 뿐, **무한 재귀 호출 여부를 확인하는 구체적인 방법이나 디버깅 절차, 관련 API에 대한 설명은 없습니다.** 따라서 주어진 문서 범위 내에서는 스택 오버플로우의 원인을 무한 재귀 호출로 특정하는 방법을 답변할 수 없습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 누수가 발생했습니다. | | LEA-3052 | InvalidName | 유효한 이름이 아닙니다. | | LEA-3053 | CannotDelete | 삭제에 실패했습니다. | | LEA-3054 | CannotApply | 적용에 실패했습니다. | | LEA-3056 | StackOverflow | 스택 오버플로우가 발생했습니다. | | LEA-3058 | CircularReference | 순환 참조가 발생했습니다. | | LEA-4002 | InvalidType | 타입이 유효하지 않습니다. | | LEA-4003 | Inva
[task] | single_turn [pass] | ⏳ 미판정 [title] | Error Level [question] | LEA-3058 순환 참조 오류가 뜨는데, 어떤 상황에서 발생하는 건가요? [answer] | LEA-3058 **CircularReference** 오류는 **순환 참조가 발생했을 때** 나타나는 에러입니다. 이는 일반적으로 스크립트 객체나 데이터 구조가 서로를 직접 또는 간접적으로 참조하여 무한 루프나 메모리 누수를 유발하는 상황에서 발생합니다. 예를 들어, A 객체가 B 객체를 참조하고 B 객체가 다시 A 객체를 참조하는 구조가 만들어지면 이 오류가 보고될 수 있습니다. 제공된 문서에는 구체적인 코드 예시나 발생 시나리오가 더 자세히 설명되어 있지 않으므로, 위와 같은 순환 참조 구조를 피하도록 스크립트 로직을 점검 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 누수가 발생했습니다. | | LEA-3052 | InvalidName | 유효한 이름이 아닙니다. | | LEA-3053 | CannotDelete | 삭제에 실패했습니다. | | LEA-3054 | CannotApply | 적용에 실패했습니다. | | LEA-3056 | StackOverflow | 스택 오버플로우가 발생했습니다. | | LEA-3058 | CircularReference | 순환 참조가 발생했습니다. | | LEA-4002 | InvalidType | 타입이 유효하지 않습니다. | | LEA-4003 | Inva
[task] | single_turn [pass] | ⏳ 미판정 [title] | Error Level [question] | LEA-3053 CannotDelete 오류가 나오는데, 엔티티를 삭제할 때 어떤 조건을 만족해야 하는지 알려주세요. [answer] | 제공된 참고 문서에는 `LEA-3053 CannotDelete` 오류가 "삭제에 실패했습니다."라는 의미를 가진다는 정보만 포함되어 있습니다. 하지만 엔티티를 삭제할 때 구체적으로 어떤 조건(예: 특정 컴포넌트 존재 여부, 서버/클라이언트 실행 공간 제한, 참조 관계 등)을 만족해야 하는지에 대한 기술적 설명이나 API 사용 규정은 문서에 명시되어 있지 않습니다. 따라서 문서 근거만으로 삭제 성공 조건을 안내해 드리기 어렵습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 누수가 발생했습니다. | | LEA-3052 | InvalidName | 유효한 이름이 아닙니다. | | LEA-3053 | CannotDelete | 삭제에 실패했습니다. | | LEA-3054 | CannotApply | 적용에 실패했습니다. | | LEA-3056 | StackOverflow | 스택 오버플로우가 발생했습니다. | | LEA-3058 | CircularReference | 순환 참조가 발생했습니다. | | LEA-4002 | InvalidType | 타입이 유효하지 않습니다. | | LEA-4003 | Inva
[task] | single_turn [pass] | ⏳ 미판정 [title] | Error Level [question] | LEA-4015 중복된 값 입력 오류가 발생하는 경우, 어떤 데이터 구조에서 이런 충돌이 일어나는지 설명해 주세요. [answer] | 제시된 문서에는 `LEA-4015` 오류 코드가 **"중복된 값은 입력할 수 없습니다"**라는 메시지만 명시되어 있을 뿐, 구체적으로 어떤 데이터 구조(예: 테이블, 매핑, 키-밸류 페어 등)에서 이 충돌이 발생하는지에 대한 기술적 설명이나 예제가 포함되어 있지 않습니다. 따라서 문서에 근거하여 특정 데이터 구조나 발생 원인을 설명하는 것은 불가능합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 누수가 발생했습니다. | | LEA-3052 | InvalidName | 유효한 이름이 아닙니다. | | LEA-3053 | CannotDelete | 삭제에 실패했습니다. | | LEA-3054 | CannotApply | 적용에 실패했습니다. | | LEA-3056 | StackOverflow | 스택 오버플로우가 발생했습니다. | | LEA-3058 | CircularReference | 순환 참조가 발생했습니다. | | LEA-4002 | InvalidType | 타입이 유효하지 않습니다. | | LEA-4003 | Inva
[task] | single_turn [pass] | ⏳ 미판정 [title] | ImageComponent [question] | ImageComponent를 엔티티에 직접 추가하려고 하면 에러가 나는 이유는 무엇인가요? [answer] | ImageComponent는 UI에 이미지를 출력하는 컴포넌트의 부모 컴포넌트(베이스 클래스)이기 때문에 엔티티에 직접 추가할 수 없습니다. 따라서 ImageComponent 자체를 엔티티에 붙이려 하면 동작하지 않으며, 실제로는 `ImageComponent`를 상속받은 구체적 컴포넌트(예: `SpriteGUIRendererComponent` 등)를 엔티티에 추가하여 사용해야 합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | SpriteGUIRendererComponent등과 같이 UI에 이미지를 출력하는 컴포넌트의 부모 컴포넌트입니다. 엔티티에 직접 추가해서 사용할 수 없습니다. # Properties - **Color Color** 이미지의 기본 색상을 설정합니다 - **boolean DropShadow** 이미지의 그림자 출력 여부를 설정합니다. - **float DropShadowAngle** 그림자를 출력할 각도를 설정합니다 - **Color DropShadowColor** 그림자 색상을 설정합니다. - **float Drop
[task] | code [pass] | ⏳ 미판정 [title] | Error Level [question] | LEA-3004 오류 발생 시 log로 경고 메시지를 출력하고, self.Entity.TransformComponent.Position 을 참조하는 스크립트를 작성해줘 [answer] | LEA-3004(`MissingComponent`) 오류는 스크립트가 참조하려는 컴포넌트가 엔티티에 존재하지 않을 때 발생합니다. 요청하신 대로 `log`로 경고 메시지를 출력하고, `self.Entity.TransformComponent.Position`을 참조하는 스크립트를 작성합니다. 참고로, `LEA-3004` 오류가 실제로 발생하면 스크립트 실행이 중단되거나 예외가 발생하므로, 단순히 로그를 출력하는 것만으로는 오류를 방지할 수 없습니다. 하지만 요청에 따라 해당 위치를 참조하는 로직과 함께 로그 출력을 수행하는 코드를 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 을 사용했습니다. | | LEA-2010 | ForLimitNeedNumber | For문의 Limit 구문에 잘못된 타입을 사용했습니다. | | LEA-2011 | AttemptToCall | 함수 호출이 불가능한 타입에 함수 호출을 시도했습니다. | | LEA-3001 | NotSupported | 지원하지 않는 기능을 사용했습니다. | | LEA-3002 | InvalidOperation | 함수 호출이 객체의 현재 상태에 유효하지 않습니다. | | LEA-3003 | OutOfRange | 값의 허용 범위를 벗어났습니다. |
[task] | single_turn [pass] | ⏳ 미판정 [title] | ImageComponent [question] | 이미지를 시계 반대 방향으로 채우기 위해 FillClockWise 값을 어떻게 설정해야 하나요? [answer] | `FillClockWise` 프로퍼티는 값이 `true`일 때 시계 방향으로 채워진다고 명시되어 있습니다. 따라서 이미지를 시계 반대 방향으로 채우려면 이 값을 `false`로 설정해야 합니다. ```lua self.Entity.SpriteGUIRendererComponent.FillClockWise = false ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | SpriteGUIRendererComponent등과 같이 UI에 이미지를 출력하는 컴포넌트의 부모 컴포넌트입니다. 엔티티에 직접 추가해서 사용할 수 없습니다. # Properties - **Color Color** 이미지의 기본 색상을 설정합니다 - **boolean DropShadow** 이미지의 그림자 출력 여부를 설정합니다. - **float DropShadowAngle** 그림자를 출력할 각도를 설정합니다 - **Color DropShadowColor** 그림자 색상을 설정합니다. - **float Drop
[task] | two_turn [pass] | ⏳ 미판정 [title] | MobileGyroscopeService [question] | 모바일 기기에서 중력 센서 데이터를 활용하기 위해 MobileGyroscopeService 의 주요 메서드와 사용 전제 조건을 알려주세요. [answer] | MobileGyroscopeService는 모바일 기기의 중력 센서 데이터를 활용하기 위한 서비스입니다. 이 서비스를 사용하려면 사용자 기기가 중력 센서 기능을 지원해야 하며, 모든 메서드는 클라이언트에서만 실행됩니다([ClientOnly]). 주요 메서드와 사용 전제 조건은 다음과 같습니다. ### 1. 사용 전제 조건 및 상태 확인 센서 데이터를 읽기 전에 기기가 센서를 지원하는지, 현재 측정 중인지 확인해야 합니다. * **`IsHWSupported()`**: 기기가 중력 센서 기능을 지원하는지 여부를 `boolean [followup] | GetAttitudeEuler() 와 GetGravity() 의 반환값이 각각 어떤 좌표계 기준으로 제공되는지, 그리고 IsHWSupported() 가 false 를 반환할 경우 스크립트에서 어떻게 예외 처리해야 하는지 구체적인 코드 예시를 작성해 주세요. [followup_answer] | `GetAttitudeEuler()`와 `GetGravity()`의 좌표계 기준과 `IsHWSupported()`가 `false`일 때의 예외 처리 방법은 다음과 같습니다. ### 1. 반환값의 좌표계 기준 * **`GetAttitudeEuler()`**: 기기의 현재 회전각을 **오일러 각(Euler Angles)** 형태로 반환합니다. 문서에는 명시적인 좌표계(예: 월드 좌표계, 로컬 좌표계 등) 이름이 지정되어 있지 않으며, 단순히 "기기의 현재 회전각"을 오일러 각으로 표현한다는 설명만 있습니다. * **`GetG [scores] | [judge_reason] | [source_doc] | 모바일 기기의 중력 센서를 사용합니다. 사용자 기기에서 중력 센서 기능을 지원해야 사용할 수 있습니다. # Methods - **Vector3 GetAttitudeEuler() [ClientOnly]** 기기의 현재 회전각을 오일러 각 형태로 반환합니다. - **Vector3 GetGravity() [ClientOnly]** 기기의 월드 좌표계를 기준으로 나타낸 중력 가속도 값을 반환합니다 - **Vector3 GetRotationRate() [ClientOnly]** 기기의 초당 회전 변화량을 반환합니다. - **V
[task] | single_turn [pass] | ⏳ 미판정 [title] | Error Level [question] | LEA-2004 오류가 나는 코드에서 숫자와 문자열을 비교하고 싶은데, 어떤 방식으로 타입 변환을 해야 이 오류를 피할 수 있나요? [answer] | LEA-2004 오류는 **비교 연산이 불가능한 타입**(예: 숫자 `number`와 문자열 `string`)을 직접 비교할 때 발생합니다. mLua(Lua 5.3 기반)에서는 숫자와 문자열을 직접 `==`, `~=`, `<`, `>`, `<=`, `>=` 연산자로 비교할 수 없습니다. 이 오류를 피하려면 비교 전에 **타입을 명시적으로 변환**해야 합니다. ### 해결 방법 1. **문자열을 숫자로 변환**: `tonumber()` 함수를 사용합니다. 2. **숫자를 문자열로 변환**: `tostring()` 함수를 사용 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | | ID | 이름 | 설명 | |---|---|---| | LEA-1001 | ExpectedSymbol | 코드를 구성하는데 필요한 심볼을 작성하지 않았습니다. | | LEA-1002 | NoReturnStatement | 반환 값이 필요한 함수에 반환 값을 작성하지 않았습니다. | | LEA-1003 | NeedPairKeyword | 코드를 구성에 필요한 쌍이 맞지 않습니다. | | LEA-1004 | DuplicateLabel | 라벨을 중복 정의했습니다. | | LEA-1005 | UnexpectedSymbol | 예상하지
[task] | single_turn [pass] | ⏳ 미판정 [title] | ImageComponent [question] | FrameRate 프로퍼티를 설정했는데 아무런 효과가 없는데, 이 프로퍼티가 왜 더 이상 동작하지 않는 건가요? [answer] | FrameRate 프로퍼티는 더 이상 사용되지 않는(Deprecated) 상태이기 때문에 효과를 보실 수 없습니다. 문서에 따르면 FrameRate, FrameRow, FrameColumn 프로퍼티는 모두 "더는 사용하지 않는 프로퍼티"로 명시되어 있으며, 애니메이션 기능을 사용하려면 **AnimationClip Editor**를 사용하도록 안내되어 있습니다. 따라서 FrameRate 값을 변경해도 이미지 표시에 어떠한 영향도 미치지 않습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | SpriteGUIRendererComponent등과 같이 UI에 이미지를 출력하는 컴포넌트의 부모 컴포넌트입니다. 엔티티에 직접 추가해서 사용할 수 없습니다. # Properties - **Color Color** 이미지의 기본 색상을 설정합니다 - **boolean DropShadow** 이미지의 그림자 출력 여부를 설정합니다. - **float DropShadowAngle** 그림자를 출력할 각도를 설정합니다 - **Color DropShadowColor** 그림자 색상을 설정합니다. - **float Drop
[task] | two_turn [pass] | ⏳ 미판정 [title] | MobileGyroscopeService [question] | MobileGyroscopeService 에서 StartAndWait() 와 StopAndWait() 메서드가 Yield 속성을 가진 이유와 실패 시 false 반환 시나리오를 설명해 주세요. [answer] | `MobileGyroscopeService`의 `StartAndWait()`와 `StopAndWait()` 메서드가 `[Yield]` 속성을 가지는 이유는, 이 메서드들이 기기의 하드웨어 센서와 통신하여 측정 시작이나 종료 상태를 **동기적으로 대기**해야 하기 때문입니다. 하드웨어 센서의 응답은 즉각적이지 않을 수 있으며, 센서가 실제로 준비되었는지 또는 종료 처리가 완료되었는지를 확인하는 과정에는 시간이 소요됩니다. `[Yield]`를 사용하면 스크립트 실행이 해당 하드웨어 응답을 받을 때까지 일시 정지되고, 응답이 도착하면 반 [followup] | 센서 시작 실패(false 반환) 또는 종료 중 데이터 초기화(resetData) 로직이 필요한 상황에서, 스크립트가 멈추지 않고 안전하게 상태를 관리하는 비동기 처리 방식과 예외 발생 시 복구 코드를 작성해 주세요. [followup_answer] | `MobileGyroscopeService`의 `StartAndWait()`와 `StopAndWait()` 메서드는 `[Yield]` 속성을 가지고 있어, 실행 중에 하드웨어 센서의 응답을 기다리며 스크립트 코루틴을 일시 정지시킵니다. 따라서 "스�크립트가 멈추지 않는" 순수 비동기 콜백 방식은 이 서비스 API 구조상 직접 지원되지 않습니다. 대신, **Yield 기반의 안전한 상태 관리**를 위해 다음과 같은 원칙을 적용해야 합니다. 1. **상태 플래그 사용**: 센서 시작/종료 과정 중 재진입(Re-entry)을 방지하기 [scores] | [judge_reason] | [source_doc] | 모바일 기기의 중력 센서를 사용합니다. 사용자 기기에서 중력 센서 기능을 지원해야 사용할 수 있습니다. # Methods - **Vector3 GetAttitudeEuler() [ClientOnly]** 기기의 현재 회전각을 오일러 각 형태로 반환합니다. - **Vector3 GetGravity() [ClientOnly]** 기기의 월드 좌표계를 기준으로 나타낸 중력 가속도 값을 반환합니다 - **Vector3 GetRotationRate() [ClientOnly]** 기기의 초당 회전 변화량을 반환합니다. - **V
[task] | two_turn [pass] | ⏳ 미판정 [title] | ImageComponent [question] | RaycastTarget 속성이 true로 설정되어 있을 때, 이 UI 요소 뒤에 다른 UI 컴포넌트가 배치되어 있으면 터치 입력 처리에 어떤 영향이 있나요? [answer] | `RaycastTarget` 속성이 `true`로 설정되어 있으면 해당 UI 요소는 화면 터치 또는 마우스 클릭의 대상이 됩니다. 이때 중요한 점은, **이 UI 요소 뒤에(아래에) 배치된 다른 UI 컴포넌트는 화면 터치와 마우스 클릭 입력을 받지 못한다**는 것입니다. 즉, `RaycastTarget`이 `true`인 UI가 다른 UI 위에 겹쳐져 있으면, 겹치는 영역에서의 터치/클릭 이벤트는 위쪽 UI에 의해 처리되고, 아래쪽 UI로는 이벤트가 전달되지 않습니다. [followup] | RaycastTarget이 true인 ImageComponent와 false인 ImageComponent가 겹쳐 있을 때, 마우스 클릭 이벤트가 어느 컴포넌트에 전달되는지 코드 예시를 보여주세요. [followup_answer] | `RaycastTarget`이 `true`인 UI 컴포넌트와 `false`인 UI 컴포넌트가 겹쳐 있을 때, 마우스 클릭 이벤트는 **`RaycastTarget`이 `true`인 컴포넌트에 있는 엔티티**에만 전달됩니다. `RaycastTarget`이 `false`인 컴포넌트는 마우스 클릭 대상이 아니므로, 그 위에 다른 UI가 겹쳐 있지 않더라도 클릭 입력을 받지 못합니다. 또한 `RaycastTarget`이 `true`인 UI가 `false`인 UI 위에 겹쳐 있으면, 겹치는 영역의 클릭은 위쪽(`true`) UI가 처리하고 [scores] | [judge_reason] | [source_doc] | SpriteGUIRendererComponent등과 같이 UI에 이미지를 출력하는 컴포넌트의 부모 컴포넌트입니다. 엔티티에 직접 추가해서 사용할 수 없습니다. # Properties - **Color Color** 이미지의 기본 색상을 설정합니다 - **boolean DropShadow** 이미지의 그림자 출력 여부를 설정합니다. - **float DropShadowAngle** 그림자를 출력할 각도를 설정합니다 - **Color DropShadowColor** 그림자 색상을 설정합니다. - **float Drop
[task] | two_turn [pass] | ⏳ 미판정 [title] | MobileGyroscopeService [question] | MobileGyroscopeService를 사용하여 모바일 기기에서 공을 움직이는 기본 원리 및 설정 방법은? [answer] | MobileGyroscopeService를 사용하여 모바일 기기에서 공을 움직이는 원리와 설정 방법은 다음과 같습니다. ### 1. 기본 원리 1. **하드웨어 지원 확인 및 시작**: 클라이언트에서 기기가 자이로스코프 하드웨어를 지원하는지 확인하고, 지원되면 센서 서비스를 시작합니다. 2. **회전 속도 데이터 수집**: 게임 루프(`OnUpdate`)에서 기기의 순간 회전 속도(Rotation Rate)를 실시간으로 가져옵니다. 3. **클라이언트-서버 통신**: 수집된 회전 속도 데이터를 서버로 전달합니다. 이는 물리 연산이 [followup] | `IsHWSupported()`가 true이지만 `StartAndWait()`가 false를 반환하는 경우, 에러 로그 외에 어떤 추가 처리나 재시도 로직을 구현해야 하는지? [followup_answer] | 제공된 참고 문서에는 `StartAndWait()`가 `false`를 반환하는 경우 `log_error("Failed to start gyroscope")`를 호출하는 것 외의 추가 처리나 재시도 로직에 대한 내용이 포함되어 있지 않습니다. 따라서 문서에 근거하여 답변하자면, **에러 로그 출력 외의 추가 처리나 재시도 로직은 문서에 명시되어 있지 않습니다.** [scores] | [judge_reason] | [source_doc] | 자이로스코프 센서를 활용해 공 모양 Entity를 움직이는 예제입니다. ```lua Property: [None] number ForcePower = 100 Method: [client only] void OnBeginPlay () { if _MobileGyroscopeService:IsHWSupported() then local enabled = _MobileGyroscopeService:StartAndWait() if enabled then _UIToast:ShowMessage("Gyroscope Starte
[task] | code [pass] | ⏳ 미판정 [title] | MobileGyroscopeService [question] | 모바일 기기의 중력 센서 지원 여부를 확인하고, 지원 시 측정 주기를 0.1초로 설정한 후 StartAndWait()를 호출하여 센서 활성화에 성공하면 log에 "센서 시작"을, 실패하면 "지원 안됨" 또는 "시작 실패"를 출력하는 [client only] 스크립트를 작성해줘 (_MobileGyroscopeService) [answer] | 요청하신 조건에 맞춰 모바일 기기의 중력 센서 지원 여부 확인, 측정 주기 설정(0.1초), 센서 시작 및 결과 로그 출력을 수행하는 스크립트입니다. ```lua Method: [client only] void OnBeginPlay() { -- 1. 하드웨어 지원 여부 확인 if not _MobileGyroscopeService:IsHWSupported() then log("지원 안됨") return end -- 2. 측정 주기 0.1초로 설정 _MobileGyro [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 모바일 기기의 중력 센서를 사용합니다. 사용자 기기에서 중력 센서 기능을 지원해야 사용할 수 있습니다. # Methods - **Vector3 GetAttitudeEuler() [ClientOnly]** 기기의 현재 회전각을 오일러 각 형태로 반환합니다. - **Vector3 GetGravity() [ClientOnly]** 기기의 월드 좌표계를 기준으로 나타낸 중력 가속도 값을 반환합니다 - **Vector3 GetRotationRate() [ClientOnly]** 기기의 초당 회전 변화량을 반환합니다. - **V
[task] | instruction_following [pass] | ⏳ 미판정 [title] | AvatarGUIRendererComponent [question] | AvatarGUIRendererComponent에서 제공되는 모든 ClientOnly 메서드명을 나열하되, 쉼표로 구분하여 한 줄로만 출력하세요. [answer] | GetAvatarRootEntity, GetBodyEntity, GetFaceEntity, PlayEmotion, SetAvatarPartColor [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 아바타 형태의 엔티티를 UI에 렌더링합니다. # Properties - **Color Color** 아바타 전체 색을 지정한 색상 값으로 변경합니다. - **boolean FlipX** X축을 기준으로 반전 여부를 결정합니다. - **boolean FlipY** Y축을 기준으로 반전 여부를 결정합니다. - **string MaterialId [Sync]** 렌더러에 적용할 머티리얼 Id를 지정합니다. - **float PlayRate** 아바타 애니메이션 재생 속도를 지정할 수 있습니다. 0 이상의 값을 지원하
[task] | single_turn [pass] | ⏳ 미판정 [title] | Error Level [question] | LEA-1003 오류가 뜨는데, 중괄호나 괄호를 다 짝맞췄다고 생각했는데 왜 이런 에러가 나는 건가요? [answer] | LEA-1003 (NeedPairKeyword) 오류는 코드 내에서 쌍을 이루어야 하는 문법 요소가 올바르게 짝맞추어지지 않았을 때 발생합니다. 단순히 중괄호 `{}`나 괄호 `()`만 확인했다면 놓치기 쉬운 다른 '쌍'들이 있을 수 있습니다. 주로 다음과 같은 원인들이 있습니다: 1. **인코딩 문제 (가장 흔한 원인)** * 한국어 환경에서 작성할 때, 한글 입력 상태에서 중괄호나 괄호가 **한글 문자(예: {, }, (, ))**로 입력된 경우입니다. * mLua는 영문 ASCII 기호인 `{`, ` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | | ID | 이름 | 설명 | |---|---|---| | LEA-1001 | ExpectedSymbol | 코드를 구성하는데 필요한 심볼을 작성하지 않았습니다. | | LEA-1002 | NoReturnStatement | 반환 값이 필요한 함수에 반환 값을 작성하지 않았습니다. | | LEA-1003 | NeedPairKeyword | 코드를 구성에 필요한 쌍이 맞지 않습니다. | | LEA-1004 | DuplicateLabel | 라벨을 중복 정의했습니다. | | LEA-1005 | UnexpectedSymbol | 예상하지
[task] | single_turn [pass] | ⏳ 미판정 [title] | ImageComponent [question] | SpriteGUIRendererComponent와 ImageComponent는 어떤 관계에 있고, 직접 사용할 수 없는 ImageComponent는 어떤 용도로 쓰이는 것인가요? [answer] | `SpriteGUIRendererComponent`와 `ImageComponent`의 관계와 `ImageComponent`의 용도는 다음과 같습니다. **1. 두 컴포넌트의 관계** `ImageComponent`는 `SpriteGUIRendererComponent`와 같은 UI에 이미지를 출력하는 컴포넌트들의 **부모 컴포넌트**입니다. 즉, `SpriteGUIRendererComponent`는 `ImageComponent`를 상속받아 만들어졌거나, `ImageComponent`가 정의한 기본 속성들을 포함하는 상위 개념의 컴포넌 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | SpriteGUIRendererComponent등과 같이 UI에 이미지를 출력하는 컴포넌트의 부모 컴포넌트입니다. 엔티티에 직접 추가해서 사용할 수 없습니다. # Properties - **Color Color** 이미지의 기본 색상을 설정합니다 - **boolean DropShadow** 이미지의 그림자 출력 여부를 설정합니다. - **float DropShadowAngle** 그림자를 출력할 각도를 설정합니다 - **Color DropShadowColor** 그림자 색상을 설정합니다. - **float Drop
[task] | single_turn [pass] | ⏳ 미판정 [title] | Error Level [question] | LEA-1108 오류가 발생했는데, 읽기 전용 프로퍼티라고 하는 것은 어떤 경우를 말하는 건가요? [answer] | `LEA-1108 (AssignToReadonlyProperty)` 오류는 **읽기 전용(read-only)으로 선언된 프로퍼티에 값을 할당하려고 할 때** 발생합니다. mLua에서 프로퍼티는 `Property:` 블록에서 선언되며, 기본적으로 값이 변경 가능한 `Writable` 상태가 아닙니다. 특정 프로퍼티를 읽기 전용으로 지정하거나, 시스템/엔진 내부에서 관리하여 외부에서 직접 수정할 수 없도록 설정된 프로퍼티에 `=` 연산자를 사용하여 값을 대입하면 이 오류가 납니다. ### 주요 발생 경우 1. **시스템 관리 프 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | | ID | 이름 | 설명 | |---|---|---| | LEA-1001 | ExpectedSymbol | 코드를 구성하는데 필요한 심볼을 작성하지 않았습니다. | | LEA-1002 | NoReturnStatement | 반환 값이 필요한 함수에 반환 값을 작성하지 않았습니다. | | LEA-1003 | NeedPairKeyword | 코드를 구성에 필요한 쌍이 맞지 않습니다. | | LEA-1004 | DuplicateLabel | 라벨을 중복 정의했습니다. | | LEA-1005 | UnexpectedSymbol | 예상하지
[task] | code [pass] | ⏳ 미판정 [title] | MobileGyroscopeService [question] | 중력 센서 측정 중인지 IsEnabled()로 확인하여 활성화 상태일 때만 GetGravity()로 반환된 중력 가속도 값의 Y 성분이 -9.8m/s^2 부근인지 판별하고, 해당 값이 범위 안에 있으면 log에 "정상 중력"을, 아니면 "중력 이상"을 출력하는 [client only] OnUpdate 메서드를 가진 스크립트를 작성해줘 (_MobileGyroscopeService) [answer] | 중력 센서가 활성화되어 있는지 `_MobileGyroscopeService:IsEnabled()`로 확인하고, 활성화 상태일 때 `GetGravity()`로 중력 가속도를 가져옵니다. 반환된 `Vector3`의 `y` 성분이 -9.8 부근인지(예: -10.0에서 -9.6 사이) 판별하여 로그를 출력하는 `[client only]` `OnUpdate` 메서드를 가진 스크립트는 다음과 같습니다. ```lua Method: [client only] void OnUpdate (number delta) { -- 중력 센서가 측정 중 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 모바일 기기의 중력 센서를 사용합니다. 사용자 기기에서 중력 센서 기능을 지원해야 사용할 수 있습니다. # Methods - **Vector3 GetAttitudeEuler() [ClientOnly]** 기기의 현재 회전각을 오일러 각 형태로 반환합니다. - **Vector3 GetGravity() [ClientOnly]** 기기의 월드 좌표계를 기준으로 나타낸 중력 가속도 값을 반환합니다 - **Vector3 GetRotationRate() [ClientOnly]** 기기의 초당 회전 변화량을 반환합니다. - **V
[task] | instruction_following [pass] | ⏳ 미판정 [title] | AvatarGUIRendererComponent [question] | PlayRate 프로퍼티의 값이 0 이상이어야 하는 이유와 숫자 크기에 따른 속도 변화를 설명하되, 총 2문장 이내로 작성하세요. [answer] | PlayRate는 아바타 애니메이션의 재생 속도를 나타내며 0 이상만 지원하기 때문입니다. 값이 클수록 애니메이션 재생 속도가 빨라집니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 아바타 형태의 엔티티를 UI에 렌더링합니다. # Properties - **Color Color** 아바타 전체 색을 지정한 색상 값으로 변경합니다. - **boolean FlipX** X축을 기준으로 반전 여부를 결정합니다. - **boolean FlipY** Y축을 기준으로 반전 여부를 결정합니다. - **string MaterialId [Sync]** 렌더러에 적용할 머티리얼 Id를 지정합니다. - **float PlayRate** 아바타 애니메이션 재생 속도를 지정할 수 있습니다. 0 이상의 값을 지원하
[task] | instruction_following [pass] | ⏳ 미판정 [title] | AvatarGUIRendererComponent [question] | SetAvatarPartColor 메서드의 시그니처(인자 목록 포함)만 출력하되, 설명은 주석으로만 작성하세요. [answer] | ```lua void SetAvatarPartColor(MapleAvatarItemCategory category, float r, float g, float b, float a) [ClientOnly] ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 아바타 형태의 엔티티를 UI에 렌더링합니다. # Properties - **Color Color** 아바타 전체 색을 지정한 색상 값으로 변경합니다. - **boolean FlipX** X축을 기준으로 반전 여부를 결정합니다. - **boolean FlipY** Y축을 기준으로 반전 여부를 결정합니다. - **string MaterialId [Sync]** 렌더러에 적용할 머티리얼 Id를 지정합니다. - **float PlayRate** 아바타 애니메이션 재생 속도를 지정할 수 있습니다. 0 이상의 값을 지원하
[task] | single_turn [pass] | ⏳ 미판정 [title] | ImageComponent [question] | FillAmount 프로퍼티가 0.5로 설정되어 있는데 화면에 이미지가 전혀 안 보이는데, 어떤 설정을 확인해야 하나요? [answer] | `FillAmount`가 0.5로 설정되어 있음에도 이미지가 보이지 않는다면, `FillAmount` 프로퍼티는 `Type`이 **`ImageType.Filled`**로 설정되어 있을 때만 유효하기 때문에 이 부분을 가장 먼저 확인해야 합니다. `Type`이 `Filled`가 아니라면 `FillAmount` 값은 무시됩니다. 또한, 이미지가 표시되기 위해선 `ImageRUID`에 유효한 이미지 리소스 ID가 지정되어 있는지, 그리고 컴포넌트 및 엔티티의 활성화 상태(`Enable`)가 정상인지도 함께 점검해야 합니다. 아래는 ` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | SpriteGUIRendererComponent등과 같이 UI에 이미지를 출력하는 컴포넌트의 부모 컴포넌트입니다. 엔티티에 직접 추가해서 사용할 수 없습니다. # Properties - **Color Color** 이미지의 기본 색상을 설정합니다 - **boolean DropShadow** 이미지의 그림자 출력 여부를 설정합니다. - **float DropShadowAngle** 그림자를 출력할 각도를 설정합니다 - **Color DropShadowColor** 그림자 색상을 설정합니다. - **float Drop
[task] | code [pass] | ⏳ 미판정 [title] | utf8 [question] | string TestString = "Hello, 세계!" [answer] | 제시해주신 `string TestString = "Hello, 세계!"`는 유효한 UTF-8 문자열입니다. 참고 문서에 정의된 `utf8` 모듈의 함수들을 사용하여 이 문자열의 길이를 계산하고, 각 문자의 코드 포인트를 확인하는 mLua 스크립트 예제는 다음과 같습니다. 메이플스토리 월드(mLua)에서 표준 라이브러리 모듈을 사용할 때는 일반적으로 `local utf8 = require("utf8")` 형태로 불러오지 않고, API 문서에 명시된 함수 이름(`utf8.len`, `utf8.codepoint` 등)을 직접 참조하는 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # Properties - **string charpattern [Static]** 패턴 "[\0-\x7F\xC2-\xF4][\x80-0xBF]*"입니다. 유효한 UTF-8 문자열이라면 정확히 한 개의 UTF-8 바이트 열에 일치합니다. # Functions - **integer... codepoint(string s, integer i = 1, integer j = i) [Static]** 바이트 위치 i와 j 사이에서 시작하는 모든 문자에서 코드 포인트를 반환합니다. - **func, string, integer c
[task] | instruction_following [pass] | ⏳ 미판정 [title] | AvatarGUIRendererComponent [question] | KeyDownEvent 핸들러에서 키보드 입력을 감지하기 위해 참조하는 InputService 서비스의 정확한 이름과 키 입력 이벤트 객체 변수명을 2단 2열 표로 정리하세요. [answer] | | InputService 서비스 이름 | 키 입력 이벤트 객체 변수명 | | :--- | :--- | | InputService | event | [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | F1부터 F5 키를 눌러 감정 표현을 변경합니다. ```lua Method: [client only] void ChangeEmotion (number emotionNumber) { if emotionNumber == 1 then self.Entity.AvatarGUIRendererComponent:PlayEmotion(EmotionalType.Vomit, 5) elseif emotionNumber == 2 then self.Entity.AvatarGUIRendererComponent:PlayEmotion(Em