[task] | code [pass] | ⏳ 미판정 [title] | AreaParticleComponent [question] | AreaParticleComponent의 Play() 메서드를 호출한 후 5초 후 Stop() 메서드를 호출해 파티클 재생을 일시 중지하는 스크립트를 작성해줘 [answer] | AreaParticleComponent는 엔티티에 직접 붙어 있는 컴포넌트이므로 `self.Entity.AreaParticleComponent`를 통해 접근할 수 있습니다. `Play()`를 호출한 후 5초 뒤에 `Stop()`을 호출하기 위해 `_TimerService:SetTimerOnce`를 사용해야 합니다. 참고 문서에 `_TimerService` API는 명시되어 있지 않지만, mLua 스크립트 규칙에 따라 `_TimerService:SetTimerOnce(fn, sec)`가 표준 서비스로 정의되어 있으므로 이를 활용합니 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 생성 영역을 조절할 수 있는 파티클 효과를 만드는 기능을 제공합니다. 눈, 비, 안개 같은 파티클이 해당합니다. # Properties - **Vector2 AreaOffset [Sync]** 엔티티를 기준으로 생성 범위의 중심점 위치를 설정합니다. - **Vector2 AreaSize [Sync]** 파티클 생성 범위의 너비와 높이를 지정합니다. - **AreaParticleType ParticleType [Sync]** 생성할 파티클 타입을 설정합니다. ##### inherited from BaseParticle
[task] | instruction_following [pass] | ⏳ 미판정 [title] | BasicParticleComponent [question] | BasicParticleComponent에서 `ParticleCount`와 `ParticleLifeTime`의 타입과 [Sync] 속성을 포함해 2문장 이내로 설명하세요. [answer] | `ParticleCount`와 `ParticleLifeTime`은 모두 `float` 타입이며 `[Sync]` 속성을 보유하고 있습니다. 각각 파티클 입자의 개수와 지속시간을 설정하는 데 사용됩니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 기본 파티클의 설정 및 제어 기능을 제공합니다. # Properties - **BasicParticleType ParticleType [Sync]** 생성할 파티클의 타입을 설정합니다. ##### inherited from BaseParticleComponent: - **boolean AutoRandomSeed [Sync]** 파티클 입자 방출이 시작될 때마다 랜덤 시드를 새로 생성할지 여부를 설정합니다. - **Color Color [Sync]** 렌더링될 파티클의 색상을 보정합니다. - **boolean Ign
[task] | instruction_following [pass] | ⏳ 미판정 [title] | BasicParticleComponent [question] | 문서에 명시된 `BasicParticleComponent`의 Properties 중 [Sync] 속성이 없는 항목이 있는지 확인하여, 없으면 '없음'으로, 있으면 그 항목 이름을 3문장 이내로 답하세요. [answer] | 문서에 명시된 `BasicParticleComponent`의 모든 Properties는 [Sync] 속성이 붙어 있습니다. 따라서 [Sync] 속성이 없는 항목은 없으며, 결론은 '없음'입니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 기본 파티클의 설정 및 제어 기능을 제공합니다. # Properties - **BasicParticleType ParticleType [Sync]** 생성할 파티클의 타입을 설정합니다. ##### inherited from BaseParticleComponent: - **boolean AutoRandomSeed [Sync]** 파티클 입자 방출이 시작될 때마다 랜덤 시드를 새로 생성할지 여부를 설정합니다. - **Color Color [Sync]** 렌더링될 파티클의 색상을 보정합니다. - **boolean Ign
[task] | two_turn [pass] | ⏳ 미판정 [title] | AreaParticleComponent [question] | 파티클의 반복 재생 및 초기 상태가 이미 재생 중으로 보이게 하려면 Loop와 Prewarm 속성을 어떻게 조합해야 하는가? [answer] | `AreaParticleComponent`를 사용할 때 파티클이 끝까지 재생된 후 처음부터 다시 시작되도록 하려면 `Loop` 속성을 `true`로 설정해야 합니다. 또한 파티클을 처음 재생할 때 이미 재생되고 있었던 것처럼 자연스럽게 보이게 하려면 `Prewarm` 속성도 `true`로 설정합니다. 이 두 속성을 조합하면 파티클이 끊김 없이 계속 재생되며, 처음 시작할 때부터 이미 일부 입자가 존재하는 상태처럼 보입니다. 아래는 이 설정을 적용하는 mLua 스크립트 예시입니다. ```lua Property: [Sync] Ar [followup] | Prewarm이 true일 때 Play() 메서드 호출 전후로 파티클의 시각적 상태가 어떻게 변화하는지 구체적으로 설명해 줘. [followup_answer] | 제공된 문서에는 `Prewarm` 속성이 `true`일 때 파티클이 **처음 재생될 때 이미 재생되고 있었던 것과 같은 상태로 시작한다**는 설명만 포함되어 있습니다. 따라서 문서 근거에 따라 `Play()` 메서드 호출 전후의 시각적 상태 변화를 구체적으로 설명하면 다음과 같습니다. 1. **`Play()` 호출 전:** * 파티클이 재생되지 않은 상태입니다. * `Prewarm`이 `true`여도 `Play()`가 호출되기 전까지는 파티클이 시각적으로 표시되지 않거나, 방출이 시작되지 않은 상태입니다. [scores] | [judge_reason] | [source_doc] | 생성 영역을 조절할 수 있는 파티클 효과를 만드는 기능을 제공합니다. 눈, 비, 안개 같은 파티클이 해당합니다. # Properties - **Vector2 AreaOffset [Sync]** 엔티티를 기준으로 생성 범위의 중심점 위치를 설정합니다. - **Vector2 AreaSize [Sync]** 파티클 생성 범위의 너비와 높이를 지정합니다. - **AreaParticleType ParticleType [Sync]** 생성할 파티클 타입을 설정합니다. ##### inherited from BaseParticle
[task] | instruction_following [pass] | ⏳ 미판정 [title] | BasicParticleComponent [question] | `Play()`와 `Stop()` 메서드를 호출하는 mLua 코드만 출력하고, 실행 공간 지정자([server only] 등)는 주석으로만 표기하세요. [answer] | ```lua Property: [Sync] BasicParticleComponent ParticleComponent = nil Method: -- 실행 공간: [server only] void OnBeginPlay() { self.ParticleComponent = self.Entity.BasicParticleComponent } Method: -- 실행 공간: [server only] void PlayParticle() { self.ParticleComponent:Play() } Method: -- 실행 공간: [serv [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 기본 파티클의 설정 및 제어 기능을 제공합니다. # Properties - **BasicParticleType ParticleType [Sync]** 생성할 파티클의 타입을 설정합니다. ##### inherited from BaseParticleComponent: - **boolean AutoRandomSeed [Sync]** 파티클 입자 방출이 시작될 때마다 랜덤 시드를 새로 생성할지 여부를 설정합니다. - **Color Color [Sync]** 렌더링될 파티클의 색상을 보정합니다. - **boolean Ign
[task] | code [pass] | ⏳ 미판정 [title] | AreaParticleComponent [question] | AreaParticleComponent의 Loop 속성을 true로 설정하고 ParticleLifeTime을 2.0으로 조정해 무한히 반복되는 눈 파티클을 생성하는 스크립트를 작성해줘 [answer] | AreaParticleComponent에서 `Loop` 속성을 `true`로 설정하고 `ParticleLifeTime`을 2.0으로 조정하면 파티클이 중단되지 않고 무한히 반복 재생됩니다. 아래 스크립트는 엔티티에 AreaParticleComponent가 이미 존재한다고 가정하고, 게임 시작 시(`OnBeginPlay`) 해당 속성들을 설정하는 예시입니다. 참고로, 눈 파티클을 생성하려면 컴포넌트의 `ParticleType` 속성이 눈 타입으로 설정되어 있어야 합니다. 이는 에디터에서 직접 설정하거나, 문서에 명시된 `AreaPa [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 생성 영역을 조절할 수 있는 파티클 효과를 만드는 기능을 제공합니다. 눈, 비, 안개 같은 파티클이 해당합니다. # Properties - **Vector2 AreaOffset [Sync]** 엔티티를 기준으로 생성 범위의 중심점 위치를 설정합니다. - **Vector2 AreaSize [Sync]** 파티클 생성 범위의 너비와 높이를 지정합니다. - **AreaParticleType ParticleType [Sync]** 생성할 파티클 타입을 설정합니다. ##### inherited from BaseParticle
[task] | single_turn [pass] | ⏳ 미판정 [title] | AreaParticleComponent [question] | AreaParticleComponent에서 AreaSize를 변경했는데 파티클이 엔티티 기준이 아닌 화면 기준으로 넓어지는 것처럼 보이는 이유는 무엇인가요? [answer] | `AreaParticleComponent`의 `AreaSize`는 파티클이 생성되는 범위의 **너비와 높이**를 지정하는 프로퍼티입니다. 참고 문서에 따르면, 이 범위의 중심점 위치는 `AreaOffset` 프로퍼티로 설정하며, 이 값은 **엔티티를 기준으로** 계산됩니다. 따라서 `AreaSize`를 변경했을 때 파티클이 엔티티 기준이 아닌 화면 기준으로 넓어지는 것처럼 보이는 현상은, `AreaSize` 자체가 화면 좌표를 의미하는 것이 아니라 **엔티티 로컬 좌표계(또는 월드 좌표계)의 단위**로 해석되기 때문에 발생하는 시 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 생성 영역을 조절할 수 있는 파티클 효과를 만드는 기능을 제공합니다. 눈, 비, 안개 같은 파티클이 해당합니다. # Properties - **Vector2 AreaOffset [Sync]** 엔티티를 기준으로 생성 범위의 중심점 위치를 설정합니다. - **Vector2 AreaSize [Sync]** 파티클 생성 범위의 너비와 높이를 지정합니다. - **AreaParticleType ParticleType [Sync]** 생성할 파티클 타입을 설정합니다. ##### inherited from BaseParticle
[task] | instruction_following [pass] | ⏳ 미판정 [title] | BasicParticleComponent [question] | 예제에서 Q 키와 E 키 입력 시 각각 실행되는 BasicParticleComponent 의 메서드 이름을 2 문장 이내로 나열하세요. [answer] | Q 키 입력 시 `Stop()` 메서드가 실행되고, E 키 입력 시 `Play()` 메서드가 실행됩니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | - **OrderInLayerChangedEvent** Component의 OrderInLayer가 변경되었을 때 발생하는 이벤트입니다. - **ParticleEmitEndEvent** 파티클의 방출이 종료되었을 때 BaseParticleComponent에서 발생하는 이벤트입니다. - **ParticleEmitStartEvent** 파티클 입자 방출이 시작될 때 발생하는 이벤트입니다. - **ParticleLoopEvent** Loop 프로퍼티가 활성화 된 경우, 파티클의 방출 주기가 돌아와서 방출을 반복할 때 발생하
[task] | code [pass] | ⏳ 미판정 [title] | UserDataStoragePages [question] | 모든 UserDataStorage 페이지를 순회하며 GetCurrentPageDatas() 로 데이터를 조회하고, IsLastPage 가 true 가 될 때까지 MoveToNextPageAndWait() 를 호출하는 스크립트를 작성해줘 [answer] | UserDataStorage 페이지를 순회하여 데이터를 조회하는 mLua 스크립트입니다. 참고: `_DataStorageService` 를 통해 DataStorage 인스턴스를 가져온 후, `BatchGetAndWait` 또는 `BatchGetByInfoAndWait` 를 호출하면 `pages` 객체가 반환됩니다. 이 `pages` 객체에 대해 질문하신 순회 로직을 적용합니다. 아래 예제는 키 목록 기반 조회(`BatchGetAndWait`)를 기준으로 작성했습니다. ```lua Method: [server only] void [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 월드의 UserDataStorage들을 조회할 수 있는 기능을 제공합니다. # Properties - **boolean IsLastPage [ReadOnly]** 현재 페이지가 마지막 페이지인지 확인합니다. # Methods - **table<UserDataStorage> GetCurrentPageDatas() [ServerOnly]** 현재 페이지의 UserDataStorage 목록을 가져옵니다. - **int32 LoadNextPageAndWait() [ServerOnly] [Yield]** 다음 페이지를 불러
[task] | code [pass] | ⏳ 미판정 [title] | UserDataStorage [question] | UserDataStorage 컴포넌트의 TransactDeleteAndWait 메서드를 사용해 최대 20개까지 가능한 키 목록을 리스트로 전달하여 데이터를 일괄 삭제하고, 성공 시 삭제된 키 목록과 에러 코드를 로그로 출력하는 [server only] 스크립트를 작성해줘 [answer] | UserDataStorage에서 데이터를 일괄 삭제하려면 `TransactDeleteAndWait` 메서드를 사용합니다. 이 메서드는 `List<string>` 타입의 키 목록을 인자로 받아 최대 20개까지의 데이터를 비동기 없이(스마트 실행 중단) 삭제합니다. 모든 작업이 성공하면 에러 코드와 삭제에 성공한 키 목록을 반환하며, 하나라도 실패하면 함수 호출 자체가 실패합니다. 요청하신 내용을 바탕으로 작성한 스크립트는 다음과 같습니다. ```lua [server only] void DeleteUserDataBatch() { [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 으로 오름/내림차순 정렬을 설정할 수 있습니다. minDate, maxDate로 설정한 시간대 내에서 생성된 버전을 조회할 수 있습니다. 이 작업은 비동기로 수행되며, 작업이 완료되면 에러 코드, 키, 조회용 객체와 함께 callbackFunction으로 전달된 함수가 호출됩니다. - **int32 SetAndWait(string key, string value) [ServerOnly] [Yield]** 입력한 키로 데이터를 저장합니다. 작업이 완료되면 에러 코드를 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **
[task] | instruction_following [pass] | ⏳ 미판정 [title] | BasicParticleComponent [question] | BasicParticleComponent 에서 제공되는 이벤트 5 가지의 명칭과 발생 시점을 5 행의 표로 정리하세요. [answer] | | 이벤트 명칭 | 발생 시점 | | :--- | :--- | | OrderInLayerChangedEvent | Component의 OrderInLayer가 변경되었을 때 | | ParticleEmitEndEvent | 파티클의 방출이 종료되었을 때 | | ParticleEmitStartEvent | 파티클 입자 방출이 시작될 때 | | ParticleLoopEvent | Loop 프로퍼티가 활성화된 경우, 파티클의 방출 주기가 돌아와서 방출을 반복할 때 | | SortingLayerChangedEvent | 컴포넌트의 Sorti [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | - **OrderInLayerChangedEvent** Component의 OrderInLayer가 변경되었을 때 발생하는 이벤트입니다. - **ParticleEmitEndEvent** 파티클의 방출이 종료되었을 때 BaseParticleComponent에서 발생하는 이벤트입니다. - **ParticleEmitStartEvent** 파티클 입자 방출이 시작될 때 발생하는 이벤트입니다. - **ParticleLoopEvent** Loop 프로퍼티가 활성화 된 경우, 파티클의 방출 주기가 돌아와서 방출을 반복할 때 발생하
[task] | two_turn [pass] | ⏳ 미판정 [title] | UserDataStoragePages [question] | 서버 사이드에서 `UserDataStorage` 목록을 페이지 단위로 순차적으로 조회하는 로직을 작성하고 싶습니다. [answer] | 서버 사이드에서 `UserDataStorage` 목록을 페이지 단위로 순차적으로 조회하려면, 먼저 `_DataStorageService`를 통해 DataStorage 인스턴스를 가져오고, 해당 인스턴스의 `BatchGetAndWait` 또는 `BatchGetByInfoAndWait` 메서드를 호출하여 페이지 객체(`pages`)를 받아야 합니다. 받은 `pages` 객체를 이용해 다음과 같은 순환 구조로 데이터를 조회합니다. 1. `GetCurrentPageDatas()`를 호출하여 현재 페이지의 `UserDataStorage` [followup] | `IsLastPage` 프로퍼티를 활용해 모든 페이지를 순회하며 에러 처리를 포함하는 `while` 루프 기반의 mLua 코드 예제를 작성해 주세요. [followup_answer] | `IsLastPage` 프로퍼티를 활용해 모든 페이지를 순회하며 에러 처리를 포함하는 mLua 코드 예시는 다음과 같습니다. ```lua Method: [server only] void IterateAllUserDataStoragePages() { local ds = _DataStorageService:GetCreatorDataStorage() local keys = {} table.insert(keys, "Key1") table.insert(keys, "Key2") local [scores] | [judge_reason] | [source_doc] | 월드의 UserDataStorage들을 조회할 수 있는 기능을 제공합니다. # Properties - **boolean IsLastPage [ReadOnly]** 현재 페이지가 마지막 페이지인지 확인합니다. # Methods - **table<UserDataStorage> GetCurrentPageDatas() [ServerOnly]** 현재 페이지의 UserDataStorage 목록을 가져옵니다. - **int32 LoadNextPageAndWait() [ServerOnly] [Yield]** 다음 페이지를 불러
[task] | two_turn [pass] | ⏳ 미판정 [title] | AreaParticleComponent [question] | 여러 파티클 엔티티가 겹쳤을 때 표시 순서를 제어하고, 광원 영향을 배제하려면 어떤 속성을 조정해야 하는가? [answer] | 여러 파티클 엔티티가 겹쳤을 때 표시 순서를 제어하려면 `SortingLayer`와 `OrderInLayer` 속성을 조정해야 합니다. 또한 광원의 영향을 배제하려면 `LitMode` 속성을 설정해야 합니다. 1. **표시 순서 제어** - **`SortingLayer`**: 2개 이상의 엔티티가 겹쳤을 때 Sorting Layer에 따라 보이는 우선순위가 결정됩니다. - **`OrderInLayer`**: 같은 Layer 내의 우선순위를 결정합니다. 값이 클수록 앞에 보입니다. 2. **광원 영향 배제** - [followup] | OrderInLayer와 LitMode, SortingLayer 속성을 함께 사용하여 특정 파티클만 항상 가장 위에 보이도록 하는 코드 예시를 작성해 줘. [followup_answer] | 특정 파티클이 항상 가장 위에 보이도록 하려면 `SortingLayer`를 고유한 레이어 이름으로 설정하고, 같은 레이어 내에서 최상위에 오도록 `OrderInLayer` 값을 크게 설정해야 합니다. 또한 광원의 영향을 받지 않도록 `LitMode`를 설정할 수 있습니다. 참고 문서에는 `LitMode`의 구체적인 열거형 값(예: `NonLit`, `Lit` 등)이 명시되어 있지 않으므로, 아래 예제에서는 광원 영향 배제에 초점을 맞추기 위해 `LitMode` 속성 접근만 포함하고 실제 할당 값은 개발 환경에서 사용할 수 있는 상 [scores] | [judge_reason] | [source_doc] | 생성 영역을 조절할 수 있는 파티클 효과를 만드는 기능을 제공합니다. 눈, 비, 안개 같은 파티클이 해당합니다. # Properties - **Vector2 AreaOffset [Sync]** 엔티티를 기준으로 생성 범위의 중심점 위치를 설정합니다. - **Vector2 AreaSize [Sync]** 파티클 생성 범위의 너비와 높이를 지정합니다. - **AreaParticleType ParticleType [Sync]** 생성할 파티클 타입을 설정합니다. ##### inherited from BaseParticle
[task] | code [pass] | ⏳ 미판정 [title] | UserDataStorage [question] | UserDataStorage 컴포넌트의 TransactSetAsync 메서드를 사용해 키와 값을 쌍으로 담은 딕셔너리를 전달하여 비동기 저장 작업을 수행하고, 완료 시 콜백에서 성공한 키 목록을 로그로 출력하는 [server only] 스크립트를 작성해줘 [answer] | `TransactSetAsync` 메서드는 `Dictionary<string, string>` 타입의 키-값 쌍과 콜백 함수를 인자로 받습니다. 제공된 문서에는 `Dictionary` 타입의 생성이나 초기화 방법이 명시되어 있지 않으므로, 해당 딕셔너리 객체를 어떻게 만들어야 하는지는 알 수 없습니다. 따라서 문서에 근거하여 `Dictionary` 객체를 직접 생성하는 코드는 작성할 수 없으며, 이는 지어낼 수 없는 부분입니다. 대신, `Dictionary` 객체가 이미 준비되어 있다고 가정하고, 이를 `TransactSetAs [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 으로 오름/내림차순 정렬을 설정할 수 있습니다. minDate, maxDate로 설정한 시간대 내에서 생성된 버전을 조회할 수 있습니다. 이 작업은 비동기로 수행되며, 작업이 완료되면 에러 코드, 키, 조회용 객체와 함께 callbackFunction으로 전달된 함수가 호출됩니다. - **int32 SetAndWait(string key, string value) [ServerOnly] [Yield]** 입력한 키로 데이터를 저장합니다. 작업이 완료되면 에러 코드를 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **
[task] | single_turn [pass] | ⏳ 미판정 [title] | UserDataStoragePages [question] | GetCurrentPageDatas 함수가 ServerOnly로 제한되어 있는데, 클라이언트에서 유저의 저장 데이터를 실시간으로 확인하고 싶을 때는 이 함수를 직접 호출할 수 없나요? [answer] | 네, `GetCurrentPageDatas()` 함수는 `[ServerOnly]` 제약이 있으므로 클라이언트 스크립트에서 직접 호출할 수 없습니다. 문서에 따르면 `UserDataStoragePages`는 서버 측에서 월드의 `UserDataStorage`들을 조회하기 위해 제공되는 기능입니다. 따라서 클라이언트에서 유저의 저장 데이터를 실시간으로 확인하려면, 서버에서 데이터를 조회하여 클라이언트로 전달하는 방식(예: 네트워크 메시지 전송, 동기화 프로퍼티 업데이트 등)을 사용해야 합니다. 하지만 제공된 문서에는 클라이언트로 데이 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 월드의 UserDataStorage들을 조회할 수 있는 기능을 제공합니다. # Properties - **boolean IsLastPage [ReadOnly]** 현재 페이지가 마지막 페이지인지 확인합니다. # Methods - **table<UserDataStorage> GetCurrentPageDatas() [ServerOnly]** 현재 페이지의 UserDataStorage 목록을 가져옵니다. - **int32 LoadNextPageAndWait() [ServerOnly] [Yield]** 다음 페이지를 불러
[task] | two_turn [pass] | ⏳ 미판정 [title] | UserDataStorage [question] | `BatchGetAsync`와 `BatchGetByInfoAsync` 메서드는 어떤 상황에서 각각 사용되며, 두 메서드의 콜백 함수가 전달하는 파라미터의 차이는 무엇인가요? [answer] | `BatchGetAsync`와 `BatchGetByInfoAsync`는 모두 비동기로 사용자 데이터를 조회하는 메서드이지만, 조회에 사용하는 키의 형식이 다릅니다. ### 1. 사용 상황 차이 * **`BatchGetAsync`**: * **사용 상황**: 단순한 문자열 형태의 키(`List<string>`)만 가지고 데이터를 조회할 때 사용합니다. * **특징**: 버전(Version)이나 태그(Tag) 정보 없이 키 이름만으로 데이터를 가져와야 할 때 적합합니다. * **`BatchGetByIn [followup] | `DataStorageKeyInfo` 객체를 활용하여 여러 키 정보를 한 번에 조회하는 `BatchGetByInfoAsync` 호출 시, 콜백 함수에서 에러 코드와 조회 결과를 처리하는 로직을 포함하여 코드 예시를 작성해 주세요. [followup_answer] | `BatchGetByInfoAsync`는 `DataStorageKeyInfo` 객체 리스트를 입력받아 비동기로 데이터를 조회하며, 완료 시 에러 코드, 사용된 키 정보 리스트, 그리고 조회 결과를 담은 `DataStorageItemPages` 객체를 콜백 함수로 전달합니다. `DataStorageItemPages`는 페이지 단위로 데이터를 다루므로, 콜백 함수 내에서 현재 페이지의 데이터를 가져오고, 마지막 페이지인지 확인하며, 필요 시 다음 페이지를 로드하는 순환 처리가 필요합니다. 아래는 `DataStorageKeyInfo` [scores] | [judge_reason] | [source_doc] | 유저의 데이터를 관리할 수 있는 저장소입니다. 메이커와 출시 환경은 저장소를 공유하지 않습니다. # Properties - **string UserId [ReadOnly]** 유저의 Id입니다. # Methods - **int32, List<string> BatchDeleteAndWait(List<string> keys) [ServerOnly] [Yield]** 입력한 키들로 데이터들을 삭제합니다. 에러 코드와 삭제에 성공한 키들을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **void BatchDel
[task] | two_turn [pass] | ⏳ 미판정 [title] | UserDataStorage [question] | UserDataStorage에서 비동기 작업과 동기 작업을 선택할 때 어떤 기준을 고려해야 하며, 각 방식의 차이점은 무엇인가요? [answer] | UserDataStorage에서 비동기(Async) 작업과 동기(Wait) 작업을 선택할 때 고려해야 할 기준과 각 방식의 차이는 다음과 같습니다. ### 1. 작업 방식의 차이점 * **동기 작업 (AndWait)** * `[Yield]` 속성을 가지며, 작업이 완료될 때까지 **스크립트 실행을 중단**시킵니다. * 작업이 끝난 후 바로 에러 코드와 데이터(또는 객체)를 반환합니다. * 코드 흐름이 직선적으로 진행되어 로직 작성과 디버깅이 비교적 직관적입니다. * 예: `GetAn [followup] | GetAsync와 GetAndWait 중 스크립트 실행 흐름에 영향 없이 데이터를 조회하려면 어떤 메서드를 사용하고, callbackFunction에 전달되는 인자(에러 코드, 키, 데이터)는 어떻게 처리해야 하나요? [followup_answer] | 스크립트 실행 흐름에 영향(중단) 없이 데이터를 조회하려면 **`GetAsync`** 메서드를 사용해야 합니다. `GetAndWait`는 `[Yield]` 속성을 가지며 작업 수행 중 스크립트 실행을 중단시키지만, `GetAsync`는 비동기로 수행되어 요청을 보낸 후 즉시 다음 코드로 실행을 계속합니다. ### callbackFunction 인자 처리 `GetAsync(string key, func<int32, string, string> callbackFunction)`의 콜백 함수에는 다음 3가지 인자가 순서대로 전달됩니 [scores] | [judge_reason] | [source_doc] | 을 저장합니다. 이 작업은 비동기로 수행되며, 작업이 완료되면 에러 코드, 저장에 성공한 DataStorageKeyInfo들과 함께 callbackFunction으로 전달된 함수가 호출됩니다. - **int32 DeleteAndWait(string key) [ServerOnly] [Yield]** 입력한 키로 데이터를 삭제하고 에러 코드를 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **void DeleteAsync(string key, func<int32, string> callbackFunction) [Serv
[task] | two_turn [pass] | ⏳ 미판정 [title] | UserDataStoragePages [question] | `UserDataStoragePages` 컴포넌트에서 페이징 기능을 사용하여 사용자 데이터를 조회하는 기본 구조와 핵심 프로퍼티 및 메서드를 설명해 주세요. [answer] | `UserDataStoragePages`는 월드의 `UserDataStorage` 데이터를 페이지 단위로 조회할 수 있게 해주는 객체입니다. 이 객체를 통해 한 번에 모든 데이터를 가져오는 대신, 페이지를 넘기며 데이터를 순차적으로 처리할 수 있습니다. ### 핵심 프로퍼티 및 메서드 **1. 프로퍼티 (Properties)** * **`IsLastPage`** (`boolean`, 읽기 전용): * 현재 보고 있는 페이지가 마지막 페이지인지 여부를 알려줍니다. * `true`이면 더 이상의 페이지가 없 [followup] | `LoadNextPageAndWait()` 와 `MoveToNextPageAndWait()` 의 차이점과 각각 어떤 상황에서 호출해야 하는지 구체적인 예시를 들어 설명해 주세요. [followup_answer] | `LoadNextPageAndWait()`와 `MoveToNextPageAndWait()`는 `UserDataStoragePages`의 페이징 기능을 구성하는 두 단계로, 데이터의 **서버에서 클라이언트(스크립트 실행 환경)로의 전송**과 **실제 페이지 포인터의 이동**이라는 서로 다른 역할을 수행합니다. ### 1. 차이점 | 구분 | `LoadNextPageAndWait()` | `MoveToNextPageAndWait()` | | :--- | :--- | :--- | | **역할** | 다음 페이지의 데이터를 **서버에서 [scores] | [judge_reason] | [source_doc] | 월드의 UserDataStorage들을 조회할 수 있는 기능을 제공합니다. # Properties - **boolean IsLastPage [ReadOnly]** 현재 페이지가 마지막 페이지인지 확인합니다. # Methods - **table<UserDataStorage> GetCurrentPageDatas() [ServerOnly]** 현재 페이지의 UserDataStorage 목록을 가져옵니다. - **int32 LoadNextPageAndWait() [ServerOnly] [Yield]** 다음 페이지를 불러
[task] | instruction_following [pass] | ⏳ 미판정 [title] | BasicParticleComponent [question] | 제공된 예제 코드에 포함된 클라이언트 전용 메서드와 이벤트 핸들러의 코드만 출력하고 설명은 주석으로 작성하세요. [answer] | ```lua Method: [client only] void OnBeginPlay() { -- 엔티티의 BasicParticleComponent 컴포넌트를 참조합니다. self.ParticleComponent = self.Entity.BasicParticleComponent -- 재생 속도를 0부터 2 사이의 랜덤 값으로 설정합니다. self.ParticleComponent.PlaySpeed = _UtilLogic:RandomDouble() * 2 -- 방출할 파티클 입자 수를 2로 설정합니다. self.Partic [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | - **OrderInLayerChangedEvent** Component의 OrderInLayer가 변경되었을 때 발생하는 이벤트입니다. - **ParticleEmitEndEvent** 파티클의 방출이 종료되었을 때 BaseParticleComponent에서 발생하는 이벤트입니다. - **ParticleEmitStartEvent** 파티클 입자 방출이 시작될 때 발생하는 이벤트입니다. - **ParticleLoopEvent** Loop 프로퍼티가 활성화 된 경우, 파티클의 방출 주기가 돌아와서 방출을 반복할 때 발생하
[task] | code [pass] | ⏳ 미판정 [title] | UserDataStorage [question] | UserDataStorage 컴포넌트의 GetVersionsAsync 메서드를 사용해 특정 키의 버전 목록을 minDate와 maxDate 파라미터로 시간대를 제한하여 비동기 조회하고, 완료 시 콜백에서 조회된 객체 개수를 로그로 출력하는 [server only] 스크립트를 작성해줘 [answer] | 제공된 참고 문서에는 `GetVersionsAsync` 메서드의 정확한 시그니처(인자 순서, 타입)가 명시되어 있지 않습니다. 문서에는 `minDate`, `maxDate`로 시간대를 제한하여 조회할 수 있다는 설명과, 완료 시 에러 코드, 키, 조회용 객체와 함께 콜백이 호출된다는 내용만 포함되어 있습니다. 문서에 명시된 정보만 근거로 작성할 경우, `GetVersionsAsync`의 정확한 호출 형식(인자 순서 등)을 확정할 수 없으므로 **정확한 코드 예시를 작성하는 것이 불가능합니다.** 다만, 문서에 명시된 동작 방식( [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 으로 오름/내림차순 정렬을 설정할 수 있습니다. minDate, maxDate로 설정한 시간대 내에서 생성된 버전을 조회할 수 있습니다. 이 작업은 비동기로 수행되며, 작업이 완료되면 에러 코드, 키, 조회용 객체와 함께 callbackFunction으로 전달된 함수가 호출됩니다. - **int32 SetAndWait(string key, string value) [ServerOnly] [Yield]** 입력한 키로 데이터를 저장합니다. 작업이 완료되면 에러 코드를 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **
[task] | code [pass] | ⏳ 미판정 [title] | BaseParticleComponent [question] | BasicParticleComponent의 ParticleLifeTime과 ParticleSize를 설정한 후 Play()를 호출하여 2초간 지속되는 파티클 효과를 생성하는 스크립트를 작성해줘 [answer] | 요청하신 기능은 `BasicParticleComponent`의 `ParticleLifeTime`과 `ParticleSize`를 설정한 뒤 `Play()` 메서드를 호출하는 방식입니다. 아래 스크립트는 엔티티에 `BasicParticleComponent`가 있다고 가정하고, `OnBeginPlay` 시점에 해당 프로퍼티를 초기화하고 파티클을 재생하도록 작성되었습니다. ```lua Property: [Sync] BasicParticleComponent ParticleComponent = nil Method: [client only] [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 파티클 효과를 만드는 ParticleComponent들의 부모 컴포넌트입니다. # Properties - **boolean AutoRandomSeed [Sync]** 파티클 입자 방출이 시작될 때마다 랜덤 시드를 새로 생성할지 여부를 설정합니다. - **Color Color [Sync]** 렌더링될 파티클의 색상을 보정합니다. - **boolean IgnoreMapLayerCheck [Sync]** SortingLayer에 Map Layer 이름을 지정했을 때 자동 치환을 수행하지 않습니다. - **boolean Is
[task] | code [pass] | ⏳ 미판정 [title] | BaseParticleComponent [question] | AreaParticleComponent의 Loop와 Prewarm 속성을 설정하여 처음부터 연속적으로 재생되는 영역 파티클 효과를 생성하는 스크립트를 작성해줘 [answer] | AreaParticleComponent의 `Loop` 속성을 `true`로 설정하면 파티클이 끝나지 않고 계속 반복 재생됩니다. 또한 `Prewarm` 속성을 `true`로 설정하면, 파티클이 처음 재생될 때 이미 한동안 재생되고 있었던 것처럼 중간 상태부터 시작합니다. 이를 결합하면 파티클을 Play() 호출하는 즉시 끊김 없이 연속적으로 보이는 영역 파티클 효과를 만들 수 있습니다. 아래 스크립트는 엔티티에 AreaParticleComponent가 있다고 가정하고, OnBeginPlay에서 두 속성을 설정한 뒤 파티클을 재생하 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 파티클 효과를 만드는 ParticleComponent들의 부모 컴포넌트입니다. # Properties - **boolean AutoRandomSeed [Sync]** 파티클 입자 방출이 시작될 때마다 랜덤 시드를 새로 생성할지 여부를 설정합니다. - **Color Color [Sync]** 렌더링될 파티클의 색상을 보정합니다. - **boolean IgnoreMapLayerCheck [Sync]** SortingLayer에 Map Layer 이름을 지정했을 때 자동 치환을 수행하지 않습니다. - **boolean Is
[task] | two_turn [pass] | ⏳ 미판정 [title] | AreaParticleComponent [question] | AreaParticleComponent를 사용해 눈이나 비 같은 특정 영역에만 제한된 파티클 효과를 생성하려면 어떤 속성을 설정해야 하는가? [answer] | `AreaParticleComponent`를 사용하여 눈이나 비 같은 파티클 효과를 특정 영역에만 생성하려면, 파티클이 생성되는 범위를 정의하는 **`AreaOffset`**과 **`AreaSize`** 속성을 설정해야 합니다. 1. **`AreaOffset`** (Vector2, Sync): * 파티클이 생성될 영역의 중심점을 엔티티를 기준으로 어디에 위치시킬지 설정합니다. * 기본값이 0일 경우 엔티티의 중심을 기준으로 영역이 생성됩니다. 2. **`AreaSize`** (Vector2, Sync): [followup] | AreaOffset과 AreaSize의 값이 엔티티 위치와 어떻게 관련되는지, 그리고 ParticleType 설정 시 주의할 점은 무엇인가? [followup_answer] | `AreaParticleComponent`의 `AreaOffset`과 `AreaSize`는 파티클이 생성되는 공간적 범위를 엔티티를 기준으로 정의합니다. ### 1. AreaOffset과 AreaSize의 엔티티 위치와의 관계 * **AreaOffset (Vector2):** * 파티클 생성 범위의 **중심점** 위치를 결정합니다. * 이 값은 **엔티티의 현재 위치를 기준(원점)으로 한 상대 좌표**입니다. * 예를 들어, `AreaOffset`이 `Vector2(0, 0)`이면 엔티티의 중 [scores] | [judge_reason] | [source_doc] | 생성 영역을 조절할 수 있는 파티클 효과를 만드는 기능을 제공합니다. 눈, 비, 안개 같은 파티클이 해당합니다. # Properties - **Vector2 AreaOffset [Sync]** 엔티티를 기준으로 생성 범위의 중심점 위치를 설정합니다. - **Vector2 AreaSize [Sync]** 파티클 생성 범위의 너비와 높이를 지정합니다. - **AreaParticleType ParticleType [Sync]** 생성할 파티클 타입을 설정합니다. ##### inherited from BaseParticle
[task] | two_turn [pass] | ⏳ 미판정 [title] | UserDataStorage [question] | 데이터 삭제 작업인 `BatchDeleteAndWait`와 `BatchDeleteAsync`는 실행 방식에 어떤 차이가 있으며, 스크립트 실행 중단(Yield)이 필요한 경우와 비동기 처리가 필요한 경우의 판단 기준은 무엇인가요? [answer] | `BatchDeleteAndWait`와 `BatchDeleteAsync`는 데이터 삭제 작업의 실행 방식에 따라 다음과 같은 차이가 있습니다. ### 1. 실행 방식 차이 * **`BatchDeleteAndWait` (동기 처리)** * `[Yield]` 속성을 가지고 있어 함수 호출 시 스크립트 실행을 **중단(일시 정지)**합니다. * 삭제 작업이 완료될 때까지 다른 코드가 실행되지 않고 대기 상태에 머무릅니다. * 작업 완료 후 **에러 코드(`int32`)**와 **삭제에 성공한 키들의 [followup] | `wait()` 함수와 `wait` 없이 비동기 콜백을 활용하여 데이터를 삭제하는 두 가지 서로 다른 시나리오에 대한 코드 예시를 비교하여 작성해 주세요. [followup_answer] | `wait()` 함수와 비동기 콜백을 활용한 데이터 삭제 시나리오는 스크립트 실행 흐름의 차이에 따라 다음과 같이 구분됩니다. 참고: 제공된 문서에는 `wait()` 함수의 구체적 정의가 없지만, mLua 표준 규칙에 따라 `wait(sec)`은 지정된 초 동안 스크립트 실행을 일시 중지합니다. `BatchDeleteAndWait`는 `[Yield]` 속성을 가지므로 자체적으로 실행을 중단하고 결과를 반환하지만, `wait()`는 추가적인 지연을 위해 사용될 수 있습니다. ### 시나리오 1: `wait()` 활용 (동기 흐름 [scores] | [judge_reason] | [source_doc] | 유저의 데이터를 관리할 수 있는 저장소입니다. 메이커와 출시 환경은 저장소를 공유하지 않습니다. # Properties - **string UserId [ReadOnly]** 유저의 Id입니다. # Methods - **int32, List<string> BatchDeleteAndWait(List<string> keys) [ServerOnly] [Yield]** 입력한 키들로 데이터들을 삭제합니다. 에러 코드와 삭제에 성공한 키들을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **void BatchDel
[task] | single_turn [pass] | ⏳ 미판정 [title] | AreaParticleComponent [question] | 눈이나 비처럼 넓은 범위에 걸쳐 파티클을 생성하려면 AreaOffset과 AreaSize를 어떻게 조합해서 설정해야 하나요? [answer] | `AreaParticleComponent`를 사용하여 눈이나 비처럼 넓은 범위에 걸쳐 파티클을 생성하려면 `AreaOffset`과 `AreaSize`를 엔티티의 로컬 좌표계를 기준으로 조합하여 설정해야 합니다. ### 설정 원리 1. **`AreaSize` (생성 범위 크기)** * 파티클이 생성되는 영역의 **너비(X축)**와 **높이(Y축)**를 지정합니다. * 값이 클수록 파티클이 생성되는 영역이 넓어집니다. * 예: `Vector2(10, 5)`는 엔티티 기준으로 X축 방향 10, Y축 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 생성 영역을 조절할 수 있는 파티클 효과를 만드는 기능을 제공합니다. 눈, 비, 안개 같은 파티클이 해당합니다. # Properties - **Vector2 AreaOffset [Sync]** 엔티티를 기준으로 생성 범위의 중심점 위치를 설정합니다. - **Vector2 AreaSize [Sync]** 파티클 생성 범위의 너비와 높이를 지정합니다. - **AreaParticleType ParticleType [Sync]** 생성할 파티클 타입을 설정합니다. ##### inherited from BaseParticle
[task] | single_turn [pass] | ⏳ 미판정 [title] | UserDataStoragePages [question] | LoadNextPageAndWait 함수가 에러 코드를 반환한다고 적혀 있는데, 만약 마지막 페이지에서 다음 페이지를 요청했을 때 어떤 에러 코드가 반환되는지 그리고 그 에러를 처리하는 구체적인 예시가 궁금합니다. [answer] | 제공된 참고 문서에는 `LoadNextPageAndWait` 함수가 "에러 코드를 반환한다"고 명시되어 있지만, **마지막 페이지에서 다음 페이지를 요청했을 때 반환되는 구체적인 에러 코드의 값(숫자 또는 상수)은 문서에记载되어 있지 않습니다.** 따라서 문서 기반으로는 특정 에러 코드가 무엇인지 알려드릴 수 없습니다. 다만, 문서의 예제 코드들을 참고하면 에러 코드가 `0`이 아닌 경우(`~= 0`)에 조회를 중단하는 일반적인 처리 패턴은 확인할 수 있습니다. 아래는 문서 예제에 나타난 에러 처리 방식입니다. ```lua - [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 월드의 UserDataStorage들을 조회할 수 있는 기능을 제공합니다. # Properties - **boolean IsLastPage [ReadOnly]** 현재 페이지가 마지막 페이지인지 확인합니다. # Methods - **table<UserDataStorage> GetCurrentPageDatas() [ServerOnly]** 현재 페이지의 UserDataStorage 목록을 가져옵니다. - **int32 LoadNextPageAndWait() [ServerOnly] [Yield]** 다음 페이지를 불러
[task] | two_turn [pass] | ⏳ 미판정 [title] | UserDataStorage [question] | UserDataStorage 컴포넌트를 사용하여 유저 데이터를 저장하고 조회하는 기본적인 원리와 메이커 환경 및 출시 환경에서의 차이점이 무엇인가요? [answer] | UserDataStorage는 유저의 데이터를 관리하는 저장소입니다. 메이커 환경과 출시 환경은 서로 다른 저장소를 사용하며, 두 환경 간에는 데이터를 공유하지 않습니다. 따라서 메이커 환경에서 저장한 데이터는 출시 환경에서는 조회할 수 없으며, 출시 환경에서 저장한 데이터도 메이커 환경에서는 볼 수 없습니다. 데이터를 저장하고 조회할 때는 `_DataStorageService:GetCreatorDataStorage()`를 통해 저장소 인스턴스를 가져온 후, 제공되는 메서드를 사용합니다. 저장소에는 유저를 식별하는 `UserId` [followup] | `BatchSetAndWait`와 `BatchGetAndWait`를 사용하여 특정 키의 데이터를 저장한 후 바로 조회하는 `server only` 메서드 코드 예시를 작성해 주세요. [followup_answer] | `BatchSetAndWait`로 데이터를 저장한 후, `BatchGetAndWait`로 해당 키의 데이터를 즉시 조회하는 `server only` 메서드 예시는 다음과 같습니다. ```lua Method: [server only] void SaveAndRetrieveData() { -- 크리에이터 데이터 저장소 인스턴스 가져오기 local ds = _DataStorageService:GetCreatorDataStorage() -- 1. 데이터 저장 local keyValues = {} key [scores] | [judge_reason] | [source_doc] | 유저의 데이터를 관리할 수 있는 저장소입니다. 메이커와 출시 환경은 저장소를 공유하지 않습니다. # Properties - **string UserId [ReadOnly]** 유저의 Id입니다. # Methods - **int32, List<string> BatchDeleteAndWait(List<string> keys) [ServerOnly] [Yield]** 입력한 키들로 데이터들을 삭제합니다. 에러 코드와 삭제에 성공한 키들을 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **void BatchDel
[task] | code [pass] | ⏳ 미판정 [title] | BaseParticleComponent [question] | BaseParticleComponent의 RandomSeed와 AutoRandomSeed를 활용하여 매 재생마다 다른 랜덤 시드로 입자 방향이 결정되도록 하는 스크립트를 작성해줘 [answer] | `BaseParticleComponent`의 `AutoRandomSeed` 프로퍼티를 `true`로 설정하면, 파티클 입자 방출이 시작될 때마다 랜덤 시드가 자동으로 새로 생성됩니다. `RandomSeed` 프로퍼티는 수동으로 특정 시드를 고정할 때 사용되며, 매 재생마다 자동으로 변경되기를 원한다면 `AutoRandomSeed`를 사용하는 것이 맞습니다. 따라서 매 재생마다 다른 랜덤 시드로 입자 방향 등이 결정되도록 하려면, `OnBeginPlay`에서 해당 파티클 컴포넌트의 `AutoRandomSeed`를 `true`로 설정 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 파티클 효과를 만드는 ParticleComponent들의 부모 컴포넌트입니다. # Properties - **boolean AutoRandomSeed [Sync]** 파티클 입자 방출이 시작될 때마다 랜덤 시드를 새로 생성할지 여부를 설정합니다. - **Color Color [Sync]** 렌더링될 파티클의 색상을 보정합니다. - **boolean IgnoreMapLayerCheck [Sync]** SortingLayer에 Map Layer 이름을 지정했을 때 자동 치환을 수행하지 않습니다. - **boolean Is
[task] | two_turn [pass] | ⏳ 미판정 [title] | UserDataStorage [question] | DataStorageKeyInfo를 활용한 GetByInfoAsync 메서드에서 조회 조건을 구체적으로 설정하는 방법과, 조회 완료 시 callbackFunction을 통해 반환되는 DataStorageKeyInfo 객체를 어떻게 활용해야 하나요? [answer] | `DataStorageKeyInfo`를 활용한 `GetByInfoAsync` 메서드 사용 시, 조회 조건 설정과 콜백 함수에서 반환되는 객체 활용 방법은 다음과 같습니다. ### 1. 조회 조건 설정 방법 `DataStorageKeyInfo` 객체를 생성하고, 조회하려는 데이터의 `Key`와 특정 `Version`을 지정하여 조건을 설정합니다. * **Key**: 저장된 데이터의 고유 키를 지정합니다. * **Version**: 특정 버전의 데이터를 조회하려면 `Version` 필드를 설정합니다. 이를 통해 과거에 저장 [followup] | GetByInfoAsync에서 에러 코드가 0이 아닌 경우, callbackFunction에서 에러를 처리하는 표준적인 로직 예시를 mLua 코드로 작성해 주세요. [followup_answer] | `GetByInfoAsync`에서 에러 코드가 0이 아닌 경우, callbackFunction에서 에러를 처리하는 표준적인 로직은 에러 코드를 로그에 기록하고, 필요 시 재시도나 대체 로직을 실행하는 것입니다. 아래 mLua 코드 예제는 에러 처리를 포함하여 `GetByInfoAsync`를 호출하고, 성공 시에는 조회된 데이터를 처리하는完整的한 예시입니다. ```lua Property: [None] string TargetKey = "PlayerData" string TargetVersion = "V1" Method: [serv [scores] | [judge_reason] | [source_doc] | 을 저장합니다. 이 작업은 비동기로 수행되며, 작업이 완료되면 에러 코드, 저장에 성공한 DataStorageKeyInfo들과 함께 callbackFunction으로 전달된 함수가 호출됩니다. - **int32 DeleteAndWait(string key) [ServerOnly] [Yield]** 입력한 키로 데이터를 삭제하고 에러 코드를 반환합니다. 수행하는 동안 스크립트 실행을 중단합니다. - **void DeleteAsync(string key, func<int32, string> callbackFunction) [Serv
[task] | single_turn [pass] | ⏳ 미판정 [title] | AreaParticleComponent [question] | 예제 코드에서 self.ParticleComponent.AreaSize.x 값을 설정할 때 _UtilLogic:RandomDouble() * 2를 사용하는데, AreaSize의 y 값은 어떻게 조절해야 하는지 알고 싶습니다. [answer] | 참고 문서에 제시된 예제 코드에서는 `AreaSize`의 `x` 값만 `_UtilLogic:RandomDouble() * 2`로 설정하고 있으며, `y` 값을 설정하는 코드나 `AreaSize.y` 프로퍼티에 대한 명시적인 설명이 포함되어 있지 않습니다. 따라서 제공된 문서 내에서 `AreaSize.y`를 조절하는 구체적인 방법이나 해당 프로퍼티의 존재 여부를 확인할 수 없습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | - **OrderInLayerChangedEvent** Component의 OrderInLayer가 변경되었을 때 발생하는 이벤트입니다. - **ParticleEmitEndEvent** 파티클의 방출이 종료되었을 때 BaseParticleComponent에서 발생하는 이벤트입니다. - **ParticleEmitStartEvent** 파티클 입자 방출이 시작될 때 발생하는 이벤트입니다. - **ParticleLoopEvent** Loop 프로퍼티가 활성화 된 경우, 파티클의 방출 주기가 돌아와서 방출을 반복할 때 발생하