← 목록

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

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

[task] | single_turn [pass] | ✅ 통과 [title] | ReadOnlyDictionary<K,V> [question] | ReadOnlyDictionary의 Count 프로퍼티는 읽기 전용이라 직접 수정할 수 없는가요? [answer] | 네, `ReadOnlyDictionary`의 `Count` 프로퍼티는 읽기 전용(ReadOnly)이므로 직접 수정할 수 없습니다. `Count`는 현재 Dictionary에 포함된 키와 값 쌍의 수를 가져오기만 할 수 있는 값입니다. 값을 직접 대입하여 변경하는 것은 불가능하며, Dictionary 내부에 데이터를 추가하거나 제거했을 때 해당 숫자가 자동으로 갱신되는 형태입니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 Count 프로퍼티의 읽기 전용(ReadOnly) 속성과 정의를 정확히 인용하여 질문에 간결하고 올바르게 답변했습니다. [source_doc] | 키와 값으로 데이터를 저장하는 해시 테이블입니다. 데이터 추가, 제거, 검색 기능을 제공하고 특히 검색 시 성능이 뛰어납니다. 키들은 각각 고유한 값을 가져야 하며, nil을 허용하지 않습니다. 해시 테이블에 추가할 수 있는 키의 타입을 K, 값의 타입을 V으로 표현합니다. # Properties - **number Count [ReadOnly]** Dictionary에 포함된 키와 값 쌍의 수를 가져옵니다. - **table Keys [ReadOnly]** Dictionary의 키를 포함하는 table을 가져옵니다. -

[task] | code [pass] | ❌ 탈락 [title] | Vector3 [question] | Vector3 SignedAngle을 사용하여 두 벡터 사이의 방향 차이를 구해 카메라의 회전 각도를 계산하는 스크립트를 작성해줘 [answer] | 제공된 문서에는 `Vector3`의 정적 메서드 `SignedAngle(Vector3 from, Vector3 to, Vector3 axis)`가 존재하며, 두 벡터 사이의 각도를 axis를 기준으로 구한다고 명시되어 있습니다. 하지만 **카메라(Camera) 컴포넌트나 카메라의 회전 각도를 직접 제어하는 API(예: `Rotation`, `LookAt` 등)에 대한 정보는 제공된 문서에 포함되어 있지 않습니다.** 따라서, `Vector3:SignedAngle`을 사용하여 두 벡터 사이의 방향 차이(각도)를 계산하는 로직은 작성 [followup] | [followup_answer] | [scores] | helpfulness=2 correctness=1 coherence=3 complexity=3 verbosity=2 [judge_reason] | 문서에 없는 InputService, ScreenTouchEvent, _UILogic, WorldPosition, ToVector3 등 API를 지어내어 정확도가 낮음 [source_doc] | 체를 생성해 반환합니다. planeNormal은 평면의 법선 벡터입니다. - **Vector3 Reflect(Vector3 vector, Vector3 normal) [Static]** 벡터를 평면에 반사시킨 Vector3 객체를 생성해 반환합니다. normal은 평면의 법선 벡터입니다. - **float SignedAngle(Vector3 from, Vector3 to, Vector3 axis) [Static]** 두 벡터 사이의 각도를 구합니다. axis를 기준으로 from에 대해 to가 이루는 각이 반시계 방향이면 양수

[task] | single_turn [pass] | ✅ 통과 [title] | ReadOnlyList<V> [question] | IndexOf 메서드로 찾지 못한 요소의 인덱스는 1부터 시작하는 배열 특성상 -1이 아니라 0을 반환하나요? [answer] | 네, 맞습니다. `IndexOf` 메서드는 요소를 찾지 못할 경우 `-1`이 아닌 `0`을 반환합니다. 이는 `ReadOnlyList`의 인덱스가 1부터 시작하기 때문입니다. 0은 유효한 인덱스가 아니므로, "찾지 못했다"는 상태를 나타내는 값으로 사용됩니다. ```lua local list = ReadOnlyList() -- ... 요소 추가 로직 ... local targetItem = "찾고 싶은 값" local index = list:IndexOf(targetItem) if index == 0 then log( [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 IndexOf 메서드의 반환 값(0)과 1-based 인덱스 특성을 정확히 설명하고, 올바른 코드 예시를 제시하여 질문에 완벽하게 답변했습니다. [source_doc] | 동적 크기를 가지는 배열입니다. 1부터 시작하는 인덱스로 요소에 접근할 수 있으며 데이터 추가, 제거, 검색 기능을 제공합니다. 배열에 추가할 수 있는 데이터 타입을 V로 표현합니다. # Properties - **number Count [ReadOnly]** List에 포함된 요소의 개수를 가져옵니다 # Methods - **boolean Contains(V item)** List에 요소가 있는지 여부를 확인합니다. - **number IndexOf(V item)** 요소를 처음부터 검색해, List에서 처음으로

[task] | single_turn [pass] | ✅ 통과 [title] | ReadOnlyList<V> [question] | ReadOnlyList의 Count 속성은 읽기 전용이라 직접 수정할 수 없나요? [answer] | 네, `ReadOnlyList`의 `Count` 속성은 읽기 전용(ReadOnly)이므로 직접 수정할 수 없습니다. `Count`는 현재 리스트에 포함된 요소의 개수를 조회하기만 하는 속성이며, 리스트의 크기를 변경하거나 특정 인덱스의 값을 직접 대입하여 `Count`를 바꾸는 것은 지원되지 않습니다. 리스트의 내용을 변경하려면 `Contains`, `IndexOf`, `ToTable` 등 문서에 명시된 메서드들을 활용하거나, 리스트에 데이터를 추가·제거하는 별도 API(참고 문서에 명시되지 않음)를 사용해야 합니다. 참고로, [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=3 coherence=4 complexity=2 verbosity=2 [judge_reason] | Count의 읽기 전용 특성을 정확히 설명했으나, 문서에 '데이터 추가, 제거' 기능이 있다고 명시되어 있음에도 해당 메서드가 없음을 근거로 추가·제거가 불가능하다고 단정하거나 존재하지 않는 API(Add, Remove)를 언급하는 것은 문서 내용과 어긋나거나 추측에 기반한 서술이므로 정확성에 일부 감점. [source_doc] | 동적 크기를 가지는 배열입니다. 1부터 시작하는 인덱스로 요소에 접근할 수 있으며 데이터 추가, 제거, 검색 기능을 제공합니다. 배열에 추가할 수 있는 데이터 타입을 V로 표현합니다. # Properties - **number Count [ReadOnly]** List에 포함된 요소의 개수를 가져옵니다 # Methods - **boolean Contains(V item)** List에 요소가 있는지 여부를 확인합니다. - **number IndexOf(V item)** 요소를 처음부터 검색해, List에서 처음으로

[task] | code [pass] | ❌ 탈락 [title] | Vector3 [question] | Vector2.Normalize 를 사용해 주어진 벡터를 정규화한 결과를 반환하는 메서드를 구현하는 스크립트를 작성해줘 [answer] | mLua의 Vector API 문서에는 `Distance`, `Dot`, `Magnitude`, `Normalize` 함수가 제공된다고 명시되어 있습니다. 하지만 제공된 참고 문서에는 `Vector2.Normalize`가 아닌 `Vector3` 관련 함수 목록만 제시되어 있으며, `Vector2` 타입에 `Normalize` 메서드가 존재하는지 여부는 확인된 내용이 없습니다. 따라서 `Vector2.Normalize`가 실제로 존재하는 API인지에 대한 정보가 부족합니다. 만약 `Vector2`에 `Normalize` 메서드가 존 [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=4 complexity=3 verbosity=3 [judge_reason] | Vector2 API 존재 여부에 대한 불확실성을 솔직히 고백하는 점은 좋으나, 문서에 없는 Vector2.zero를 '확인된 상수'라고 단정하거나 Vector2.Magnitude의 존재를 추정하는 등 근거 없는 API를 제시하여 정확도에서 감점됩니다. [source_doc] | Vector 연산에서 자주 사용되는 기본 함수들을 제공합니다. Distance, Dot, Magnitude, Normalize 등이 있습니다. 주의할 점으로, 2D 기반 게임을 제작할 경우 대부분의 함수는 특별한 의도가 있는게 아니라면 Position을 Vector2로 변환해서 사용해야 합니다. ```lua local myPos = self.Entity.Transform.Position local otherPos = _EntityService:GetEntityByPath(EntityPath) local myPosV2 = Vec

[task] | single_turn [pass] | ✅ 통과 [title] | ReadOnlyDictionary<K,V> [question] | TryGetValue 메서드에서 키가 존재하지 않을 때 반환되는 두 번째 값은 무엇인가요? [answer] | `TryGetValue` 메서드에서 지정한 키가 Dictionary에 존재하지 않을 때 반환되는 두 번째 값은 `nil`입니다. 메서드 시그니처가 `boolean, V TryGetValue(K key)`로 정의되어 있어 첫 번째 반환값은 해당 키가 존재하는지 여부에 대한 `boolean`이고, 두 번째 반환값은 키에 연결된 값의 타입 `V`입니다. 키가 없으면 값을 가져올 수 없으므로 두 번째 값은 `nil`이 됩니다. ```lua local found, value = myDict:TryGetValue("nonExistentKe [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 명시되지 않은 nil 반환 값은 Lua의 기본 동작과 TryGetValue의 의미론적 관점에서 타당하며, 제공된 시그니처와 코드가 문서와 규칙에 부합합니다. [source_doc] | 키와 값으로 데이터를 저장하는 해시 테이블입니다. 데이터 추가, 제거, 검색 기능을 제공하고 특히 검색 시 성능이 뛰어납니다. 키들은 각각 고유한 값을 가져야 하며, nil을 허용하지 않습니다. 해시 테이블에 추가할 수 있는 키의 타입을 K, 값의 타입을 V으로 표현합니다. # Properties - **number Count [ReadOnly]** Dictionary에 포함된 키와 값 쌍의 수를 가져옵니다. - **table Keys [ReadOnly]** Dictionary의 키를 포함하는 table을 가져옵니다. -

[task] | single_turn [pass] | ✅ 통과 [title] | Vector3 [question] | EntityService로 다른 엔티티의 위치를 가져온 후 두 점 사이의 거리를 구하는 코드를 작성하려면 어떤 순서로 진행해야 하나요? [answer] | `EntityService`를 이용해 다른 엔티티의 위치를 가져와 두 점 사이의 거리를 구하는 과정은 다음 순서로 진행됩니다. 1. **자기 엔티티 위치 획득**: `self.Entity.TransformComponent.Position`을 통해 현재 스크립트가 붙어 있는 엔티티의 좌표를 가져옵니다. 2. **타깃 엔티티 위치 획득**: `_EntityService:GetEntityByPath("경로")`를 호출해 다른 엔티티를 찾아낸 뒤, 해당 엔티티의 `TransformComponent.Position`을 통해 좌표를 가져 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 순서와 API 사용법(Vector2 변환, Distance)을 정확히 설명하고 올바른 mLua 코드 예제를 제공했습니다. [source_doc] | Vector 연산에서 자주 사용되는 기본 함수들을 제공합니다. Distance, Dot, Magnitude, Normalize 등이 있습니다. 주의할 점으로, 2D 기반 게임을 제작할 경우 대부분의 함수는 특별한 의도가 있는게 아니라면 Position을 Vector2로 변환해서 사용해야 합니다. ```lua local myPos = self.Entity.Transform.Position local otherPos = _EntityService:GetEntityByPath(EntityPath) local myPosV2 = Vec

[task] | two_turn [pass] | ✅ 통과 [title] | ReadOnlyDictionary<K,V> [question] | ReadOnlyDictionary의 Count, Keys, Values 속성이 각각 어떤 데이터 타입을 반환하며 읽기 전용 특성은 어떻게 적용되는지 알려주세요. [answer] | `ReadOnlyDictionary<K, V>`의 `Count`, `Keys`, `Values` 속성은 모두 **읽기 전용(ReadOnly)** 특성으로 인해 값만 조회할 수 있으며, 직접 수정(할당)할 수 없습니다. 각 속성이 반환하는 데이터 타입과 동작은 다음과 같습니다. ### 1. 속성별 반환 타입 및 특성 | 속성 | 반환 타입 | 설명 | | :--- | :--- | :--- | | **Count** | `number` | Dictionary에 포함된 키와 값 쌍의 총 개수를 반환합니다. | | **Keys** | ` [followup] | TryGetValue 메서드 호출 시 키가 존재하지 않으면 반환값과 오류 처리는 어떻게 되나요? [followup_answer] | `ReadOnlyDictionary<K, V>`의 `TryGetValue(K key)` 메서드는 지정한 키와 연결된 값을 가져오는 기능입니다. 참고 문서에 따르면, 이 메서드의 반환 타입은 **`boolean, V`** 로 정의되어 있습니다. 이는 Lua의 다중 반환 값(multiple return) 방식을 따르며, 첫 번째 반환값은 해당 키가 Dictionary에 존재하는지 여부를 나타내는 `boolean` 타입, 두 번째 반환값은 실제 값(`V` 타입)입니다. ### 키가 존재하지 않을 때의 동작 키가 존재하지 않으면: 1 [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 속성 타입과 읽기 전용 특성을 정확히 설명하고, 표준 mLua 구문을 활용한 적절한 코드 예시를 제공하여 질문에 완벽하게 부응합니다. [source_doc] | 키와 값으로 데이터를 저장하는 해시 테이블입니다. 데이터 추가, 제거, 검색 기능을 제공하고 특히 검색 시 성능이 뛰어납니다. 키들은 각각 고유한 값을 가져야 하며, nil을 허용하지 않습니다. 해시 테이블에 추가할 수 있는 키의 타입을 K, 값의 타입을 V으로 표현합니다. # Properties - **number Count [ReadOnly]** Dictionary에 포함된 키와 값 쌍의 수를 가져옵니다. - **table Keys [ReadOnly]** Dictionary의 키를 포함하는 table을 가져옵니다. -

[task] | single_turn [pass] | ✅ 통과 [title] | Vector3 [question] | TransformComponent의 Position은 Vector3 타입인데, 2D 이동 로직 작성 시 반드시 Vector2로 변환해야 하는 구체적인 이유는 무엇인가요? [answer] | 메이플스토리 월드와 같은 2D 기반 게임 환경에서는 `TransformComponent`의 `Position` 속성이 기본적으로 3차원 공간 좌표계를 표현하는 `Vector3` 타입으로 반환됩니다. 하지만 2D 게임 로직(이동, 충돌, 거리 계산 등)에서는 X, Y 좌표만 의미 있으며 Z 좌표는 사용되지 않거나 무시됩니다. 따라서 2D 이동 로직을 작성할 때 `Vector3`을 그대로 사용하면 다음과 같은 문제가 발생할 수 있습니다: 1. **의도하지 않은 Z축 이동**: `Vector3` 연산을 수행할 경우 Z값이 0이 아닌 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서의 2D 변환 필요성 및 예제 코드와 정확히 일치하며, 시스템 규칙에 따른 컴포넌트 접근법도 올바르게 사용했습니다. [source_doc] | Vector 연산에서 자주 사용되는 기본 함수들을 제공합니다. Distance, Dot, Magnitude, Normalize 등이 있습니다. 주의할 점으로, 2D 기반 게임을 제작할 경우 대부분의 함수는 특별한 의도가 있는게 아니라면 Position을 Vector2로 변환해서 사용해야 합니다. ```lua local myPos = self.Entity.Transform.Position local otherPos = _EntityService:GetEntityByPath(EntityPath) local myPosV2 = Vec

[task] | single_turn [pass] | ❌ 탈락 [title] | Vector3 [question] | Vector3을 Vector2로 변환할 때 ToVector2 메서드를 사용하면 z 값이 어떻게 처리되는지, 그리고 변환된 Vector2의 x와 y 값이 원 벡터의 어떤 좌표에 해당하는지 확인하고 싶습니다. [answer] | `Vector3`을 `Vector2`로 변환할 때 `ToVector2` 메서드를 사용하면 **z 값은 무시(제거)** 됩니다. 변환된 `Vector2` 객체의 좌표는 원 벡터의 좌표와 다음과 같이 대응됩니다. - `Vector2.x`: 원 `Vector3`의 **x** 좌표 - `Vector2.y`: 원 `Vector3`의 **y** 좌표 즉, 3차원 벡터 `(x, y, z)`를 `ToVector2`로 변환하면 2차원 벡터 `(x, y)`가 생성됩니다. ### mLua 코드 예제 ```lua Method: [server on [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에서 ToVector2가 Static 메서드임을 명시하고 있으나, 응답의 코드 예제에서는 인스턴스 메서드처럼 콜론(:)으로 호출하여 문법적 오류가 있으며, z 값 처리에 대한 추론은 타당하지만 문서에 없는 세부 사항을 포함하고 있다. [source_doc] | 체를 생성해 반환합니다. planeNormal은 평면의 법선 벡터입니다. - **Vector3 Reflect(Vector3 vector, Vector3 normal) [Static]** 벡터를 평면에 반사시킨 Vector3 객체를 생성해 반환합니다. normal은 평면의 법선 벡터입니다. - **float SignedAngle(Vector3 from, Vector3 to, Vector3 axis) [Static]** 두 벡터 사이의 각도를 구합니다. axis를 기준으로 from에 대해 to가 이루는 각이 반시계 방향이면 양수

[task] | single_turn [pass] | ✅ 통과 [title] | ReadOnlyList<V> [question] | ReadOnlyList에 요소를 추가하거나 삭제하는 메서드가 없는데, 동적 크기를 가진다고 해서 어떻게 데이터를 관리하나요? [answer] | 제시된 문서의 내용만으로는 `ReadOnlyList`에 요소를 추가하거나 삭제하는 구체적인 메서드가 무엇인지 확인할 수 없습니다. 문서에는 `Contains`, `IndexOf`, `ToTable` 메서드와 `Count` 프로퍼티만 정의되어 있을 뿐, 데이터 추가(Add)나 삭제(Remove)를 위한 함수는 명시되어 있지 않습니다. 따라서 제공된 정보 범위 내에서 `ReadOnlyList`가 "동적 크기"를 가지더라도, 외부에서 직접 요소를 수정하는 방법이 무엇인지 설명하거나 코드를 작성하는 것은 불가능합니다. 다만, 문서에 명 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 메서드를 지어내지 않고 제공된 정보 범위 내에서 한계를 명확히 설명했으며, ToTable 사용 예제 또한 정확하고 적절합니다. [source_doc] | 동적 크기를 가지는 배열입니다. 1부터 시작하는 인덱스로 요소에 접근할 수 있으며 데이터 추가, 제거, 검색 기능을 제공합니다. 배열에 추가할 수 있는 데이터 타입을 V로 표현합니다. # Properties - **number Count [ReadOnly]** List에 포함된 요소의 개수를 가져옵니다 # Methods - **boolean Contains(V item)** List에 요소가 있는지 여부를 확인합니다. - **number IndexOf(V item)** 요소를 처음부터 검색해, List에서 처음으로

[task] | single_turn [pass] | ✅ 통과 [title] | Vector3 [question] | Vector2로 변환할 때 x와 y 값만 사용해도 되는지, z값이 무시되어 발생하는 문제나 주의할 점이 있나요? [answer] | 네, 2D 기반 게임을 제작하는 경우 `Vector3`를 `Vector2`로 변환할 때 **x와 y 값만 사용하는 것이 올바른 방법**입니다. `z` 값은 2D 공간에서는 의미 없는 값이거나 무시되어야 하므로, 이를 제외하고 변환하는 것이 일반적입니다. ### 주의할 점 및 문제 1. **2D/3D 혼용 시 오류 발생**: * `Vector3` 함수(예: `Vector3.Distance`, `Vector3.Magnitude`)와 `Vector2` 함수(예: `Vector2.Distance`)는 서로 호환되지 않습니다 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=3 coherence=4 complexity=3 verbosity=2 [judge_reason] | 응답은 질문의 핵심을 정확히 설명했으나, 예시 코드에서 문서에 없는 WorldPosition 프로퍼티를 사용했고, 2D/3D 함수 호환성 오류 발생 가능성을 단정적으로 서술하여 문서의 주의사항과 미세하게 어긋남. [source_doc] | Vector 연산에서 자주 사용되는 기본 함수들을 제공합니다. Distance, Dot, Magnitude, Normalize 등이 있습니다. 주의할 점으로, 2D 기반 게임을 제작할 경우 대부분의 함수는 특별한 의도가 있는게 아니라면 Position을 Vector2로 변환해서 사용해야 합니다. ```lua local myPos = self.Entity.Transform.Position local otherPos = _EntityService:GetEntityByPath(EntityPath) local myPosV2 = Vec

[task] | single_turn [pass] | ✅ 통과 [title] | Vector3 [question] | 두 벡터 사이의 각도를 계산할 때 SignedAngle의 axis 파라미터에 어떤 값을 전달해야 하는지, 그리고 결과가 양수나 음수로 나오는 기준이 정확히 무엇인지 설명해 주실 수 있나요? [answer] | `Vector3.SignedAngle(Vector3 from, Vector3 to, Vector3 axis)` 함수를 사용할 때 `axis` 파라미터와 결과의 부호 기준은 다음과 같습니다. **1. `axis` 파라미터에 전달할 값** `axis`에는 각도를 측정할 때 기준이 되는 회전 축(수직축) 벡터를 전달해야 합니다. * 일반적으로 3D 공간에서 수평면(XZ 평면) 위에서의 회전 각도를 구할 때는 세계 좌표계의 Y축을 나타내는 `Vector3(0, 1, 0)`을 전달하는 것이 일반적입니다. * 이 축을 기준으로 두 벡 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서에 명시된 SignedAngle의 동작 원리(축 기준, 반시계/시계 방향 부호, -180~180 범위)를 정확히 설명하고 mLua 문법에 맞는 코드 예제를 제공하여 질문에 완벽하게 답변했습니다. [source_doc] | 체를 생성해 반환합니다. planeNormal은 평면의 법선 벡터입니다. - **Vector3 Reflect(Vector3 vector, Vector3 normal) [Static]** 벡터를 평면에 반사시킨 Vector3 객체를 생성해 반환합니다. normal은 평면의 법선 벡터입니다. - **float SignedAngle(Vector3 from, Vector3 to, Vector3 axis) [Static]** 두 벡터 사이의 각도를 구합니다. axis를 기준으로 from에 대해 to가 이루는 각이 반시계 방향이면 양수

[task] | single_turn [pass] | ✅ 통과 [title] | Vector4 [question] | Vector4를 특정 숫자로 나누고 싶을 때 Division 함수의 인자 순서가 어떻게 되어 있나요? [answer] | Vector4를 특정 숫자로 나누기 위한 `Vector4.Division` 함수의 인자 순서는 다음과 같습니다. 1. **첫 번째 인자 (left)**: 나누고자 하는 **Vector4** 객체 2. **두 번째 인자 (right)**: 나눌 **float** (실수) 값 즉, `Vector4.Division(벡터, 숫자)` 형태로 호출합니다. 이 함수는 정적(Static) 함수이므로 `.` (점) 연산자를 사용하여 호출해야 합니다. ```lua Method: [server only] void OnBeginPlay() { [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 Vector4 Division 시그니처(left: Vector4, right: float)와 정적 함수 호출 방식을 정확히 설명하고, mLua 문법에 맞는 코드 예시를 제공하여 질문에 완벽히 부합합니다. [source_doc] | - **Vector4 Addition(Vector4 left, Vector4 right) [Static]** 두 벡터를 더한 Vector4 객체를 생성해 반환합니다. - **Vector4 Division(Vector4 left, float right) [Static]** 벡터를 실수로 나눈 Vector4 객체를 생성해 반환합니다. - **boolean Equality(Vector4 left, Vector4 right) [Static]** 두 벡터가 같은지 비교합니다. 같으면 true, 그렇지 않으면 false를 반환합니다

[task] | two_turn [pass] | ✅ 통과 [title] | Vector4 [question] | Vector4 타입의 주요 프로퍼티와 메서드에는 어떤 것들이 있나요? [answer] | Vector4는 4차원 벡터 타입으로, 각 축의 값을 나타내는 프로퍼티와 벡터 연산을 수행하는 메서드를 제공합니다. ### 프로퍼티 인스턴스 프로퍼티로는 각 축의 값을 직접 접근할 수 있습니다. * `x`: x축 원소 * `y`: y축 원소 * `z`: z축 원소 * `w`: w축 원소 또한, 자주 사용되는 특수한 값들을 위해 정적(Static) 읽기 전용 프로퍼티가 제공됩니다. * `Vector4.zero`: `Vector4(0, 0, 0, 0)` * `Vector4.one`: `Vector4(1, 1, [followup] | Vector4의 Lerp와 LerpUnclamped 메서드의 차이점과 사용 예시를 알려주세요. [followup_answer] | Vector4의 `Lerp`와 `LerpUnclamped` 메서드는 모두 두 벡터 사이를 선형 보간(Linear Interpolation)하는 메서드이지만, 보간 파라미터 `t`에 대한 처리 방식에서 차이가 있습니다. ### 차이점 | 메서드 | 설명 | `t` 값 처리 | | :--- | :--- | :--- | | **Lerp** | 두 벡터 사이를 `t`로 선형 보간합니다. | **0에서 1 사이로 고정(Clamp)**됩니다. `t < 0`이면 0, `t > 1`이면 1로 취급됩니다. | | **LerpUnclamped** [scores] | helpfulness=4 correctness=4 coherence=4 complexity=4 verbosity=2 [judge_reason] | 참고 문서에 명시된 Vector4의 프로퍼티, 생성자, 인스턴스 및 정적 메서드를 빠짐없이 정확히 설명하고 있으며, mLua 문법에 맞는 예시 코드도 함께 제공하여 질문에 완벽하게 부합합니다. [source_doc] | 4차원 벡터입니다. # Properties - **float w** 벡터의 w축 원소입니다. - **float x** 벡터의 x축 원소입니다. - **float y** 벡터의 y축 원소입니다. - **float z** 벡터의 z축 원소입니다. - **Vector4 negativeInfinity [Static] [ReadOnly] [HideFromInspector]** Vector4(-inf, -inf, -inf, -inf)를 간단히 사용할 수 있습니다. - **Vector4 one [Static] [ReadOn

[task] | single_turn [pass] | ✅ 통과 [title] | ReadOnlyDictionary<K,V> [question] | ToTable() 메서드를 호출한 결과로 반환되는 테이블의 구조는 원본 Dictionary와 동일한가요? [answer] | `ToTable()` 메서드를 호출하면 원본 `ReadOnlyDictionary`의 키와 값을 그대로 담은 일반 `table`이 반환됩니다. 구조적으로 원본 Dictionary와 동일하게 **키를 기준으로 값을 매핑하는 형태**를 유지합니다. 즉, Dictionary에서 `Key`로 사용하던 값이 반환된 테이블의 인덱스(또는 키)가 되고, 해당 키에 연결되던 `Value`가 테이블의 값이 됩니다. 다만, 반환되는 객체는 `ReadOnlyDictionary` 타입이 아니라 일반 `table` 타입이므로, `Count`, `Keys [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서와 mLua 규칙에 부합하여 ToTable()의 반환 타입과 구조를 명확히 설명했으며, 예제 코드도 적절합니다. [source_doc] | 키와 값으로 데이터를 저장하는 해시 테이블입니다. 데이터 추가, 제거, 검색 기능을 제공하고 특히 검색 시 성능이 뛰어납니다. 키들은 각각 고유한 값을 가져야 하며, nil을 허용하지 않습니다. 해시 테이블에 추가할 수 있는 키의 타입을 K, 값의 타입을 V으로 표현합니다. # Properties - **number Count [ReadOnly]** Dictionary에 포함된 키와 값 쌍의 수를 가져옵니다. - **table Keys [ReadOnly]** Dictionary의 키를 포함하는 table을 가져옵니다. -

[task] | two_turn [pass] | ✅ 통과 [title] | Vector4 [question] | Vector4의 Multiply 메서드 중 `float left, Vector4 right` 시그니처를 사용할 때, 스칼라 값이 0 또는 음수일 경우의 동작은 어떻게 되나요? [answer] | Vector4의 `Multiply(float left, Vector4 right)` 정적 메서드는 단순히 벡터의 각 성분을 전달된 실수(`left`)로 곱해 새로운 Vector4 객체를 생성합니다. 문서에는 스칼라 값이 0 또는 음수일 경우의 특수한 동작이나 예외 처리에 대한 설명이 없습니다. 따라서 일반적인 벡터 스칼라 곱셈 규칙이 적용됩니다: * **스칼라 값이 0일 경우:** 결과 Vector4의 모든 성분(x, y, z, w)이 0이 됩니다. * **스칼라 값이 음수일 경우:** 결과 Vector4의 각 성분은 원래 [followup] | Multiply 결과로 생성된 Vector4 객체를 UnaryNegation 메서드에 전달하면 어떤 값이 반환되나요? [followup_answer] | `Multiply` 메서드로 생성된 Vector4 객체를 `UnaryNegation` 메서드에 전달하면, 해당 벡터의 각 성분(x, y, z, w)의 부호가 모두 반전된 **역벡터**를 나타내는 새로운 Vector4 객체가 반환됩니다. `UnaryNegation`은 단순히 전달된 벡터의 모든 성분에 -1을 곱하는 효과와 동일합니다. ```lua Method: [server only] void OnBeginPlay() { -- Multiply로 Vector4 객체 생성 local multipliedVector = V [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 문서에 없는 특수 동작이 없음을 명확히 지적하고, 표준 수학 규칙에 따른 동작을 예시와 함께 정확히 설명하였습니다. [source_doc] | - **Vector4 Addition(Vector4 left, Vector4 right) [Static]** 두 벡터를 더한 Vector4 객체를 생성해 반환합니다. - **Vector4 Division(Vector4 left, float right) [Static]** 벡터를 실수로 나눈 Vector4 객체를 생성해 반환합니다. - **boolean Equality(Vector4 left, Vector4 right) [Static]** 두 벡터가 같은지 비교합니다. 같으면 true, 그렇지 않으면 false를 반환합니다

[task] | single_turn [pass] | ✅ 통과 [title] | Vector4 [question] | Vector4의 zero, one, positiveInfinity 같은 정적 프로퍼티는 런타임에 수정할 수 없는데, 왜 HideFromInspector 속성이 붙어 있는 건가요? [answer] | `Vector4`의 `zero`, `one`, `positiveInfinity`, `negativeInfinity`와 같은 정적 프로퍼티에 `HideFromInspector` 속성이 붙어 있는 이유는, 이 값들이 **수정 불가능한 읽기 전용(ReadOnly) 상수**이기 때문입니다. 이 속성들은 게임 에디터나 인스펙터 화면에서 사용자가 직접 값을 변경하거나 조작할 수 없도록 숨기는 데 사용됩니다. 인스펙터에 표시되면 사용자가 수정 가능한 것처럼 보일 수 있으나, 실제로는 `ReadOnly`이므로 수정이 불가능합니다. 따라서 혼란을 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 문서의 [ReadOnly] 및 [HideFromInspector] 태그를 정확히 인용하여, 인스펙터에서 수정 불가 상수를 숨기는 합리적 이유를 명확히 설명했습니다. [source_doc] | 4차원 벡터입니다. # Properties - **float w** 벡터의 w축 원소입니다. - **float x** 벡터의 x축 원소입니다. - **float y** 벡터의 y축 원소입니다. - **float z** 벡터의 z축 원소입니다. - **Vector4 negativeInfinity [Static] [ReadOnly] [HideFromInspector]** Vector4(-inf, -inf, -inf, -inf)를 간단히 사용할 수 있습니다. - **Vector4 one [Static] [ReadOn

[task] | single_turn [pass] | ✅ 통과 [title] | Vector4 [question] | Vector4의 모든 값을 반대로 바꾸고 싶을 때 사용할 수 있는 함수가 무엇이며, 이 함수는 어떤 이름의 연산자를 나타내나요? [answer] | Vector4의 모든 값을 반대로 바꾸고 싶을 때 사용할 수 있는 함수는 **`Vector4.UnaryNegation`** 입니다. 이 함수는 **UnaryNegation(단항 부호 변경 연산자)** 를 나타내며, 입력받은 Vector4 객체의 각 성분(x, y, z, w)의 부호를 반대로 변환한 새로운 Vector4 객체를 반환합니다. 예를 들어, `Vector4(1, -2, 3, -4)` 에 대해 `Vector4.UnaryNegation` 을 적용하면 `Vector4(-1, 2, -3, 4)` 가 생성됩니다. ```lua [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 Vector4.UnaryNegation 함수의 기능과 명칭을 정확히 설명하고, 표준 구문을 활용한 적절한 코드 예시를 제시하여 질문에 충실히 답했습니다. [source_doc] | - **Vector4 Addition(Vector4 left, Vector4 right) [Static]** 두 벡터를 더한 Vector4 객체를 생성해 반환합니다. - **Vector4 Division(Vector4 left, float right) [Static]** 벡터를 실수로 나눈 Vector4 객체를 생성해 반환합니다. - **boolean Equality(Vector4 left, Vector4 right) [Static]** 두 벡터가 같은지 비교합니다. 같으면 true, 그렇지 않으면 false를 반환합니다

[task] | single_turn [pass] | ✅ 통과 [title] | Vector4 [question] | 두 Vector4가 완전히 동일한지 확인하고 싶을 때 Equality와 Inequality 중 어떤 함수를 사용해야 하며, 반환값이 어떻게 다른가요? [answer] | 두 `Vector4`가 완전히 동일한지 확인하려면 **`Vector4.Equality`** 함수를 사용합니다. * **`Vector4.Equality(Vector4 left, Vector4 right)`**: 두 벡터가 **같으면 `true`**, 다르면 `false`를 반환합니다. * **`Vector4.Inequality(Vector4 left, Vector4 right)`**: 두 벡터가 **다르면 `true`**, 같으면 `false`를 반환합니다. 즉, "동일한지"를 확인하는 논리에는 `Equality`가 직관적 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 API 정의와 동작을 정확히 설명하고, 표준 mLua 구문을 활용한 적절한 예제를 제시하여 질문에 완벽하게 부응합니다. [source_doc] | - **Vector4 Addition(Vector4 left, Vector4 right) [Static]** 두 벡터를 더한 Vector4 객체를 생성해 반환합니다. - **Vector4 Division(Vector4 left, float right) [Static]** 벡터를 실수로 나눈 Vector4 객체를 생성해 반환합니다. - **boolean Equality(Vector4 left, Vector4 right) [Static]** 두 벡터가 같은지 비교합니다. 같으면 true, 그렇지 않으면 false를 반환합니다

[task] | two_turn [pass] | ❌ 탈락 [title] | Vector4 [question] | Vector4의 정적 메서드(Static)와 인스턴스 메서드 간의 기능적 차이는 무엇이며, 어떤 상황에서 각각을 선택해야 하나요? [answer] | Vector4의 정적 메서드(Static)와 인스턴스 메서드는 수행하는 계산 자체는 동일하지만, **호출 방식**과 **입력 인자의 구성**에서 차이가 있습니다. ### 1. 기능적 차이 * **인스턴스 메서드 (Instance Method)** * **호출 방식:** 이미 생성된 Vector4 객체(인스턴스)에서 콜론(`:`)이나 점(`.`)을 이용해 호출합니다. * **입력 인자:** 현재 객체(수신자)를 암묵적으로 첫 번째 인자로 사용하며, 나머지 연산에 필요한 벡터나 값만 전달합니다. * [followup] | 두 벡터 사이의 거리를 구할 때 Distance 메서드를 인스턴스 호출과 정적 호출로 각각 사용하는 mLua 코드 예제를 보여주세요. [followup_answer] | 두 벡터 사이의 거리를 구하는 `Distance` 메서드를 인스턴스 호출과 정적 호출로 사용하는 mLua 코드 예제는 다음과 같습니다. ```lua Property: [None] Vector4 vecA = Vector4(1, 2, 3, 4) [None] Vector4 vecB = Vector4(5, 6, 7, 8) Method: [server] void CalculateDistance() { -- 인스턴스 메서드 호출 -- vecA를 기준으로 vecB와의 거리를 구합니다. local distanceInsta [scores] | helpfulness=3 correctness=2 coherence=3 complexity=3 verbosity=2 [judge_reason] | 정적/인스턴스 메서드 호출 문법 차이(콜론 vs 점)를 설명했으나, mLua는 C#이 아닌 Lua 5.3 기반이므로 인스턴스 메서드도 점(.)으로 호출하며 콜론(:)은 self를 암시하는 문법일 뿐 타입별 강제 구분이 아니므로 시스템 규칙과 어긋나며, Property 블록에 Vector4 타입 사용 가능 여부가 문서에 명시되지 않아 지어낸 것으로 볼 수 있음. [source_doc] | 4차원 벡터입니다. # Properties - **float w** 벡터의 w축 원소입니다. - **float x** 벡터의 x축 원소입니다. - **float y** 벡터의 y축 원소입니다. - **float z** 벡터의 z축 원소입니다. - **Vector4 negativeInfinity [Static] [ReadOnly] [HideFromInspector]** Vector4(-inf, -inf, -inf, -inf)를 간단히 사용할 수 있습니다. - **Vector4 one [Static] [ReadOn

[task] | code [pass] | ❌ 탈락 [title] | ReadOnlyList<V> [question] | self.List.Count를 참조하여 리스트에 포함된 요소의 총 개수를 로그로 출력하는 스크립트를 작성해줘 [answer] | `ReadOnlyList<V>`의 `Count` 프로퍼티는 리스트에 포함된 요소의 개수를 읽기 전용으로 제공합니다. 이를 참조하여 로그로 출력하는 스크립트는 다음과 같습니다. ```lua Property: [None] ReadOnlyList<string> List = {} Method: [server only] void OnBeginPlay() { log("List Count : " .. self.List.Count) } ``` [followup] | [followup_answer] | [scores] | helpfulness=3 correctness=2 coherence=3 complexity=2 verbosity=2 [judge_reason] | 문서에 없는 `ReadOnlyList` 프로퍼티 선언 문법과 초기화 예시를 지어내어 정확도에서 감점되었으나, 질문의 핵심인 Count 참조 및 로그 출력 로직은 문서와 일치합니다. [source_doc] | 동적 크기를 가지는 배열입니다. 1부터 시작하는 인덱스로 요소에 접근할 수 있으며 데이터 추가, 제거, 검색 기능을 제공합니다. 배열에 추가할 수 있는 데이터 타입을 V로 표현합니다. # Properties - **number Count [ReadOnly]** List에 포함된 요소의 개수를 가져옵니다 # Methods - **boolean Contains(V item)** List에 요소가 있는지 여부를 확인합니다. - **number IndexOf(V item)** 요소를 처음부터 검색해, List에서 처음으로

[task] | single_turn [pass] | ✅ 통과 [title] | RoomSharedMemory [question] | BatchGetVariableAsync의 callbackFunction에서 받은 table의 구조는 어떻게 되나요? [answer] | `BatchGetVariableAsync`의 `callbackFunction`으로 전달되는 table은 `Dictionary<string, SharedVariableResult>` 타입입니다. 즉, key는 조회한 변수의 이름(`string`)이고, value는 해당 변수에 대한 정보를 담고 있는 `SharedVariableResult` 객체입니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=1 verbosity=2 [judge_reason] | 참고 문서에 명시된 반환 타입과 구조를 정확하고 간결하게 설명하여 질문에 완벽하게 부응합니다. [source_doc] | Room끼리 공유하는 메모리를 나타내는 객체입니다. # Properties - **string Name [ReadOnly]** 공유 메모리의 이름입니다. # Methods - **Dictionary<string, SharedVariableResult> BatchCreateVariableAndWait(Dictionary<string, string> nameValues) [ServerOnly] [Yield]** 입력한 이름, 값 쌍들로 변수들을 할당합니다. 변수 이름과 결과 쌍을 담고 있는 table을 반환합니다. 수행하

[task] | two_turn [pass] | ✅ 통과 [title] | Vector4 [question] | Vector4의 정적 메서드 중 Addition과 Subtraction을 사용하여 두 벡터의 합과 차를 구할 때 반환 값의 특징이 무엇인가요? [answer] | Vector4의 `Addition`과 `Subtraction` 정적 메서드를 사용할 때 반환 값의 특징은 다음과 같습니다. 1. **새로운 객체 생성**: 두 메서드 모두 연산 결과를 기존 벡터에 저장하는 방식이 아니라, **새로운 `Vector4` 객체를 생성하여 반환**합니다. 2. **기존 벡터 불변성**: 연산에 참여한 원본 벡터(`left`, `right`)는 변경되지 않으며, 오직 반환된 새로운 객체에만 합 또는 차가 담긴 값이 저장됩니다. 따라서 두 벡터의 합과 차를 구할 때는 반환된 값을 별도의 변수에 할당하여 [followup] | Vector4의 Addition과 Subtraction 결과로 생성된 객체를 Equality 메서드로 비교할 때, 원본 벡터와 비교 가능한가요? [followup_answer] | 네, 비교 가능합니다. `Addition`과 `Subtraction` 메서드는 모두 **`Vector4` 타입의 객체를 반환**합니다. 또한 `Equality` 메서드의 시그니처는 `boolean Equality(Vector4 left, Vector4 right) [Static]`로, 두 인자 모두 `Vector4` 타입을 요구합니다. 따라서 `Addition` 또는 `Subtraction`의 결과값(새로운 `Vector4` 객체)을 `left` 또는 `right` 인자로 전달하고, 원본 `Vector4` 벡터를 다른 인자로 전 [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서와 일치하는 반환 값 특징(새 객체 생성, 원본 불변)을 명확히 설명하고, mLua 표준 구문을 사용한 정확한 코드 예시를 제시했습니다. [source_doc] | - **Vector4 Addition(Vector4 left, Vector4 right) [Static]** 두 벡터를 더한 Vector4 객체를 생성해 반환합니다. - **Vector4 Division(Vector4 left, float right) [Static]** 벡터를 실수로 나눈 Vector4 객체를 생성해 반환합니다. - **boolean Equality(Vector4 left, Vector4 right) [Static]** 두 벡터가 같은지 비교합니다. 같으면 true, 그렇지 않으면 false를 반환합니다

[task] | instruction_following [pass] | ❌ 탈락 [title] | RoomSharedMemory [question] | 공유 변수 이름에 허용되지 않는 특수문자 3가지를 단계별 번호 목록으로 나열하세요. [answer] | RoomSharedMemory의 공유 변수 이름에는 다음 특수문자가 허용되지 않습니다. 1. `!` 2. `@` 3. `#` [followup] | [followup_answer] | [scores] | helpfulness=0 correctness=0 coherence=2 complexity=1 verbosity=2 [judge_reason] | 참고 문서에는 허용되지 않는 문자가 아니라 허용되는 문자(알파벳, 숫자, 공백, _, \, -)만 나열되어 있어, 질문에서 요구하는 '허용되지 않는 특수문자'를 특정할 근거가 없으며 응답은 근거 없는 예시를 지어냈습니다. [source_doc] | # 제한 사항 RoomSharedMemory를 사용할 때는 아래의 제한 사항을 염두에 두고 사용해야 합니다. #### 작명 규칙 RoomSharedMemory와 공유 변수 이름은 아래 문자로만 작명할 수 있습니다. 최소 1글자 이상의 이름이어야 하며, 최대 100글자 이름일 수 있습니다. * 알파벳 대,소문자 * 숫자 * 공백 * _, \, - #### 수량 및 용량 제한 * 한 월드 당 생성 가능한 RoomSharedMemory는 최대 100개입니다. * 하나의 공유 변수에 저장할 수 있는 최댓값은 80,000 byte

[task] | instruction_following [pass] | ✅ 통과 [title] | RoomSharedMemory [question] | RoomSharedMemory의 작명 규칙을 3문장 이내로 설명하세요. [answer] | RoomSharedMemory와 공유 변수 이름은 알파벳 대소문자, 숫자, 공백, 밑줄(_), 역슬래시(\), 하이픈(-)로만 작성할 수 있습니다. 이름은 최소 1글자 이상이어야 하며 최대 100글자까지 가능합니다. [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 작명 규칙(허용 문자, 길이 제한)을 정확하고 간결하게 요약하여 질문에 완벽히 부합합니다. [source_doc] | # 제한 사항 RoomSharedMemory를 사용할 때는 아래의 제한 사항을 염두에 두고 사용해야 합니다. #### 작명 규칙 RoomSharedMemory와 공유 변수 이름은 아래 문자로만 작명할 수 있습니다. 최소 1글자 이상의 이름이어야 하며, 최대 100글자 이름일 수 있습니다. * 알파벳 대,소문자 * 숫자 * 공백 * _, \, - #### 수량 및 용량 제한 * 한 월드 당 생성 가능한 RoomSharedMemory는 최대 100개입니다. * 하나의 공유 변수에 저장할 수 있는 최댓값은 80,000 byte

[task] | single_turn [pass] | ✅ 통과 [title] | Vector3 [question] | Vector3의 Slerp과 SlerpUnclamped의 차이점이 무엇이며, t 값이 0에서 1 범위를 벗어나는 상황에서 각각 어떻게 동작하는지 궁금합니다. [answer] | Vector3의 `Slerp`과 `SlerpUnclamped`의 차이는 보간 계수 `t` 값이 0에서 1 범위를 벗어날 때의 처리 방식에 있습니다. 1. **Vector3.Slerp(a, b, t)** * 두 벡터 사이를 `t`로 구면 선형 보간(Slerp)합니다. * `t` 값은 **0부터 1 사이로 고정(clamp)됩니다.** * 즉, `t`가 0보다 작으면 0으로, 1보다 크면 1로 처리되어 보간 결과가 항상 시작 벡터(a)와 끝 벡터(b)의 구간 내에 위치합니다. 2. **Vector3 [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=3 verbosity=2 [judge_reason] | 참고 문서에 명시된 Slerp의 t 값 고정(clamp) 특성과 SlerpUnclamped의 제한 없음 특성을 정확히 설명하고, mLua 규칙에 부합하는 코드 예시를 제공하여 질문에 완벽하게 답변했습니다. [source_doc] | 체를 생성해 반환합니다. planeNormal은 평면의 법선 벡터입니다. - **Vector3 Reflect(Vector3 vector, Vector3 normal) [Static]** 벡터를 평면에 반사시킨 Vector3 객체를 생성해 반환합니다. normal은 평면의 법선 벡터입니다. - **float SignedAngle(Vector3 from, Vector3 to, Vector3 axis) [Static]** 두 벡터 사이의 각도를 구합니다. axis를 기준으로 from에 대해 to가 이루는 각이 반시계 방향이면 양수

[task] | instruction_following [pass] | ✅ 통과 [title] | RoomSharedMemory [question] | RoomSharedMemory의 수량 및 용량 제한을 표로 정리해서 출력하세요. [answer] | RoomSharedMemory의 수량 및 용량 제한은 다음과 같습니다. | 구분 | 제한 사항 | | :--- | :--- | | 월드당 생성 가능 개수 | 최대 100개 | | 공유 변수별 저장 용량 | 최대 80,000 bytes | | 공유 메모리 총 용량 | 최대 80MiB | | 이벤트 프로퍼티 전송 용량 | 최대 80,000 bytes | [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 수량 및 용량 제한 4가지를 표 형태로 정확하고 간결하게 정리하여 요청사항을 완벽히 충족함 [source_doc] | # 제한 사항 RoomSharedMemory를 사용할 때는 아래의 제한 사항을 염두에 두고 사용해야 합니다. #### 작명 규칙 RoomSharedMemory와 공유 변수 이름은 아래 문자로만 작명할 수 있습니다. 최소 1글자 이상의 이름이어야 하며, 최대 100글자 이름일 수 있습니다. * 알파벳 대,소문자 * 숫자 * 공백 * _, \, - #### 수량 및 용량 제한 * 한 월드 당 생성 가능한 RoomSharedMemory는 최대 100개입니다. * 하나의 공유 변수에 저장할 수 있는 최댓값은 80,000 byte

[task] | single_turn [pass] | ✅ 통과 [title] | Vector4 [question] | 실수배를 수행할 때 Multiply 함수의 left와 right 인자 중 어디에 Vector4를, 어디에 float을 넣어야 하는지 구별할 수 있나요? [answer] | 네, 구별할 수 있습니다. `Vector4.Multiply`는 두 가지 오버로드로 제공되며, 인자의 순서에 따라 호출 방식이 달라집니다. 1. **`Vector4.Multiply(float left, Vector4 right)`**: 첫 번째 인자(`left`)에 **float(실수)**, 두 번째 인자(`right`)에 **Vector4**를 넣습니다. 2. **`Vector4.Multiply(Vector4 left, float right)`**: 첫 번째 인자(`left`)에 **Vector4**, 두 번째 인자(`right` [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서에 명시된 두 가지 Multiply 오버로드의 인자 순서를 정확히 설명하고, mLua 규칙에 부합하는 코드 예시를 제공하여 질문에 완벽하게 답변했습니다. [source_doc] | - **Vector4 Addition(Vector4 left, Vector4 right) [Static]** 두 벡터를 더한 Vector4 객체를 생성해 반환합니다. - **Vector4 Division(Vector4 left, float right) [Static]** 벡터를 실수로 나눈 Vector4 객체를 생성해 반환합니다. - **boolean Equality(Vector4 left, Vector4 right) [Static]** 두 벡터가 같은지 비교합니다. 같으면 true, 그렇지 않으면 false를 반환합니다

[task] | code [pass] | ✅ 통과 [title] | ReadOnlyList<V> [question] | self.List:Contains(item)을 호출하여 특정 데이터가 리스트에 존재하는지 확인하는 스크립트를 작성해줘 [answer] | `ReadOnlyList<V>` 타입의 리스트에 특정 데이터가 존재하는지 확인하려면 `Contains(item)` 메서드를 사용하면 됩니다. 이 메서드는 존재 여부를 `boolean` 타입으로 반환합니다. 아래는 `ReadOnlyList` 프로퍼티를 선언하고, `OnBeginPlay()` 생명주기 메서드에서 `Contains`를 호출하는 예제 스크립트입니다. ```lua Property: [None] ReadOnlyList<string> MyList Method: [server only] void OnBeginPlay() { [followup] | [followup_answer] | [scores] | helpfulness=4 correctness=4 coherence=4 complexity=2 verbosity=2 [judge_reason] | 참고 문서의 API 정의와 mLua 스크립트 규칙을 정확히 준수하여 질문에 맞는 예제를 제공했습니다. [source_doc] | 동적 크기를 가지는 배열입니다. 1부터 시작하는 인덱스로 요소에 접근할 수 있으며 데이터 추가, 제거, 검색 기능을 제공합니다. 배열에 추가할 수 있는 데이터 타입을 V로 표현합니다. # Properties - **number Count [ReadOnly]** List에 포함된 요소의 개수를 가져옵니다 # Methods - **boolean Contains(V item)** List에 요소가 있는지 여부를 확인합니다. - **number IndexOf(V item)** 요소를 처음부터 검색해, List에서 처음으로

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