← 목록

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

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

[task] | code [pass] | ⏳ 미판정 [title] | 월드 숍 서비스 활용하기 [question] | PlayerReward 컴포넌트와 _WorldShopService:UserHasPassAndWait를 활용해 서버 OnBeginPlay 시점에 이용권 보유 여부를 확인하고, 결과를 _WorldShopService:UserHasPassAndWait의 리턴값에 따라 PassValue 텍스트와 HasPass 프로퍼티를 동기화하는 PassCheck 및 PassUpdate 로직을 작성해줘 [answer] | 요청하신 `PlayerReward` 컴포넌트 내 `PassCheck` 및 `PassUpdate` 로직은 다음과 같습니다. 참고 문서에 제시된 코드를 기반으로, `_WorldShopService:UserHasPassAndWait` 호출 시점의 실행 공간과 동기화 방식을 정확히 반영하여 작성했습니다. ```lua Property: [None] TextComponent PassValue = /ui/DefaultGroup/MyPotionInfo/PassValue [Sync] boolean HasPass = false Method: [ [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 상품이 구매한 유저에게 반영될 수 있도록 만들어 봅시다. 1. 새로운 **PlayerReward** 컴포넌트를 생성하고, **DefaultPlayer**에 추가합니다. 2. 아래와 같이 프로퍼티를 추가합니다. ```lua Property: [None] TextComponent PotionValue = /ui/DefaultGroup/MyPotionInfo/PotionValue [Sync] number Potion= 0 [None] TextCompone

[task] | single_turn [pass] | ⏳ 미판정 [title] | 배지 서비스 활용하기 [question] | PlayerGetBadge 컴포넌트에서 AwardBadgeAndWait 호출 시 두 번째 인자로 self:GetBadge에 전달받은 BadgeID 변수 대신 소문자 badgeId를 사용했는데, 이는 문법 오류가 아닌지? [answer] | 네, 제공된 문서 예시 코드에 포함된 `badgeId`는 문법 오류입니다. `GetBadge` 메서드의 파라미터 이름은 대문자로 시작하는 `BadgeID`로 정의되어 있습니다. ```lua void GetBadge(string BadgeID) ``` 따라서 함수 본문에서 해당 변수를 참조할 때도 동일한 이름인 `BadgeID`를 사용해야 합니다. 문서 예시 중 `_BadgeService:AwardBadgeAndWait(awardingUserId, badgeId)` 부분의 `badgeId`는 소문자로 잘못 표기된 것이므로, 실제 실 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 특정 장소를 지나가는 플레이어에게 배지를 지급해봅시다. 1. 플레이어 캐릭터가 배지를 획득할 장소 역할을 할 오브젝트를 골라 월드에 배치합니다. 2. 오브젝트에 **TriggerComponent**를 추가합니다. 3. Workspace - MyDesk에 새로운 **SendBadgeInfo 컴포넌트**를 생성하고, 배지를 획득하는 장소 오브젝트에 추가합니다. 4. 스크립트 에디터를 열어 **SendBadgeInfo 컴포넌트**에 배지 ID를 확인하기 위한 프로퍼티를 추가합니다. ```lua Property:

[task] | instruction_following [pass] | ⏳ 미판정 [title] | 확률 정보 공개 [question] | 단계별 번호 목록으로 확률 고지 경로와 방식에서 월드 내 고지 및 홈페이지 고지를 위한 필수 조건을 나열해 주세요. [answer] | 확률 고지 경로와 방식에서 월드 내 고지 및 홈페이지 고지를 위한 필수 조건은 다음과 같습니다. **월드 내 고지** 1. 월드 내 사용 화면에서 확률 정보를 확인 가능하도록 표시해야 합니다. 2. 확률이 확인하기 어려운 경우, 월드 내 외부 연결 링크 등 대체제를 마련해야 합니다. **홈페이지 고지** 1. 개별 커뮤니티 등에 확률 정보를 안내한 경우, 해당 URL을 월드의 '상세 화면' - '공지 사항'에 기재해야 합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 메이플스토리 월드의 모든 크리에이터는 창작한 아이템 내 확률형 아이템을 제공함에 있어 아래의 내용을 모두 준수하였는지 확인해주시기 바랍니다. 본 준수사항 및 이외 해설서에 안내되어 있는 항목을 위반하는 경우 최대 월드 이용 제한이 적용될 수 있습니다. | 분류 |내용 | | --- | --- | | 표시 방법 준수 여부 | <ul><li>확률 정보를 백분율로 표시하였는가?</li><li>확률 표기는 최초로 0 이외의 숫자가 나오는 자리보다 네 자리 이상 낮은 소수점 자리에서 반올림하여 표시하였는가?</li><li>개별 확률 안내

[task] | instruction_following [pass] | ⏳ 미판정 [title] | 스크립트 라이프 사이클 [question] | 기본 이벤트 함수와 사용자 정의 함수의 호출 방식 차이점을 3문장 이내로 설명하세요. [answer] | 기본 이벤트 함수는 특정 조건이 충족되면 시스템에 의해 자동으로 호출되는 반면, 사용자 정의 함수는 시스템에서 직접 호출되지 않습니다. 따라서 사용자 정의 함수는 실행되려면 반드시 기본 이벤트 함수나 엔티티 이벤트 등 다른 함수 내부에서 명시적으로 호출되어야 합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 기본 이벤트 함수의 라이프 사이클과 플레이할 때의 전체 라이프 사이클을 알아봅시다. 라이프 사이클을 이해하면 특정 함수가 언제 불리는지 예상할 수 있고, 전체 월드의 동작을 고려하며 제작할 수 있습니다. # 기본 이벤트 함수의 라이프 사이클 월드에 필요한 로직을 만들기 위해서는 컴포넌트 스크립트를 만들어야만 합니다. 필요한 컴포넌트 스크립트를 만들 때 호출되는 시점을 예상해 의도한 로직에 맞게 동작할 수 있도록 작성해야 합니다. 라이프 사이클의 개념을 익혀두면 전체 흐름을 파악할 수 있기에 스크립트를 작성

[task] | instruction_following [pass] | ⏳ 미판정 [title] | 스크립트 라이프 사이클 [question] | 편집용 엔티티의 생명주기 함수 호출 규칙과 예외 사항을 코드 없이 3문장 이내로 설명하세요. [answer] | 편집용 엔티티는 `OnBeginPlay`, `OnUpdate`, `OnEndPlay`가 기본적으로 호출되지 않습니다. 다만 렌더링이 필요한 컴포넌트는 예외적으로 `OnUpdate`가 호출됩니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 서버와 클라이언트가 호출되는 전체 흐름을 알아봅시다. 플레이 라이프 사이클은 **제작 중인 월드**와 **출시된 월드**에서 약간의 차이가 있습니다. 가장 큰 차이점은 맵을 불러오는 방식입니다. * **제작 중인 월드**에서 플레이할 때는 10개의 맵을 만들었더라도 플레이어가 있는 맵만 불러옵니다. * **출시된 월드**에서는 플레이어 유무와 상관없이 모든 맵을 불러옵니다. 이와 같은 차이를 알고 있다면 **제작 중인 월드** 또는 **출시된 월드**에서 크리에이터 의도대로 동작하지 않는 무언가가 있을 때, 그 원인이 잘못된

[task] | code [pass] | ⏳ 미판정 [title] | 확률 정보 공개 [question] | 제시된 문서는 확률형 아이템의 확률 정보 공개 및 표시에 관한 법적·정책적 준수 사항을 다루고 있으며, mLua 스크립트 작성에 필요한 API 정의(컴포넌트, 서비스, 함수 시그니처 등)가 포함되어 있지 않습니다. 따라서 문서에 나온 API를 사용하여 해결할 수 있는 mLua 코딩 과제를 만들 수 없습니다. [answer] | 제시된 참고 문서는 확률형 아이템의 확률 정보 공개 및 표시에 관한 정책적 준수 사항만 다루고 있으며, mLua 스크립트 작성에 필요한 API 정의(컴포넌트, 서비스, 함수 시그니처 등)가 포함되어 있지 않습니다. 따라서 해당 문서에 근거하여 mLua 코드를 작성할 수 없습니다. 문서에는 `Property`, `Method`, `Event Handler` 블록이나 `_XxxService`와 같은 구체적인 API 정보가 존재하지 않습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 메이플스토리 월드의 모든 크리에이터는 창작한 아이템 내 확률형 아이템을 제공함에 있어 아래의 내용을 모두 준수하였는지 확인해주시기 바랍니다. 본 준수사항 및 이외 해설서에 안내되어 있는 항목을 위반하는 경우 최대 월드 이용 제한이 적용될 수 있습니다. | 분류 |내용 | | --- | --- | | 표시 방법 준수 여부 | <ul><li>확률 정보를 백분율로 표시하였는가?</li><li>확률 표기는 최초로 0 이외의 숫자가 나오는 자리보다 네 자리 이상 낮은 소수점 자리에서 반올림하여 표시하였는가?</li><li>개별 확률 안내

[task] | single_turn [pass] | ⏳ 미판정 [title] | 확률 정보 공개 [question] | 월드코인을 얻기 위해 플레이어가 시간을 투자하는 경우, 그로 구매하는 확률 아이템은 유상 구매에 해당하나요? [answer] | 참고 문서에 따르면, 월드코인을 통해 획득한 재화로 확률형 아이템을 구매하는 경우는 확률 정보 공개 대상에 포함됩니다. 구체적으로 확률형 아이템의 종류 중 "3종 외 추가 확인 필요 아이템 유형"의 D항목에 "월드코인을 통해 획득한 재화로 확률형 아이템을 구매하는 아이템 등"이 명시되어 있습니다. 따라서 플레이어가 시간을 투자하여 얻은 월드코인으로 확률형 아이템을 구매하는 경우에도 확률 정보 공개 가이드에 따라 아이템 사용 전 사용자에게 확률 정보를 고지해야 할 의무가 발생합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 확률 정보 공개란? 메이플스토리 월드의 모든 크리에이터는 창작한 아이템 내 확률형 아이템을 제공하는 경우 확률 정보 공개 가이드에 따라 아이템 사용 전 사용자에게 고지해야 할 의무가 있습니다. * 메이플스토리 월드의 확률 정보 공개 가이드는 ‘확률형 아이템 확률 정보공개 관련 해설서’의 내용을 따릅니다. 해당 해설서의 내용을 따르지 않을 경우 최대 월드 이용 제한이 적용될 수 있습니다. # 확률 정보 공개 대상 및 방법 아래 항목에 해당할 경우 확률형 아이템 정보 공개 대상이 될 수 있으며, 자세한 확률 정보 공개 대상 및

[task] | instruction_following [pass] | ⏳ 미판정 [title] | 공동 제작 [question] | Cooperation에서 엔티티 편집 시 부모가 Check Out되는 원리와 예시를 3문장 이내로 설명하세요. [answer] | Cooperation에서 엔티티 편집 시 편집 단위가 map과 ui그룹 단위이므로 자식 엔티티 편집을 시작하면 자동으로 부모가 Check Out됩니다. 예를 들어 map01의 Entity01 편집을 시작하면 Map01이 Check Out되어 다른 멤버의 접근이 차단됩니다. 이는 편집 권한을 획득하고 다른 이의 편집 권한을 차단하는 Check Out 기능의 동작 방식에 따릅니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 다양한 사람들이 함께 모여 월드를 제작할 수 있는 방법에 대해 알아봅시다. ##### 참고 가이드 * [그룹 생성과 멤버 관리](/docs/?postId=1325"target":"_self"}) * [공동 제작 그룹 멤버의 등급과 권한](/docs/?postId=1077) * [LocalWorkspace](/docs/?postId=1165) * [ExtendedScriptFormat](/docs/?postId=1166) # 공동 제작 함께 월드를 제작하기 위해서는 우선 그룹을 형성하고, 멤버 권한을 설정해

[task] | code [pass] | ⏳ 미판정 [title] | 배지 서비스 활용하기 [question] | EntityService 와 BadgeService 를 활용하여 '/maps/map01/clocktower' 경로의 오브젝트를 감지했을 때 '시계 탑에 도착' 배지를 획득하도록 하는 스크립트를 작성해줘 [answer] | 제공된 참고 문서에는 `BadgeService`의 구체적인 API(메서드, 이벤트 핸들러, 파라미터 등)가 명시되어 있지 않습니다. 문서에서는 "등록한 배지는 배지 서비스를 통해 활용할 수 있습니다"라고만 언급하고 있으며, 실제로 배지를 획득하는 코드를 어떻게 작성해야 하는지(예: `_BadgeService:GiveBadge(...)` 또는 특정 이벤트 핸들러)에 대한 정보가 없습니다. 또한, `EntityService`를 활용해 특정 경로(`/maps/map01/clocktower`)의 오브젝트를 감지하는 로직에 대해, 해당 오 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 배지를 웹에서 등록하고, `BadgeService`를 활용해 특정 오브젝트에 닿았을 때 배지를 획득하게 만들어 봅시다. 출시하지 않은 월드에서는 배지를 출시하더라도, 실제로 획득할 수 없음을 유념하세요. # BadgeService 등록한 배지는 배지 서비스를 통해 활용할 수 있습니다. 배지를 획득한 유저에게는 획득 알림창이 8초 동안 나타나며 배지의 정보가 보입니다. 만약 여러 배지를 연속으로 획득한 경우 알림창은 획득한 순서대로 나타납니다. # 활용 예시 다른 등급의 배지 3개를 등록하고, 특정 장소에

[task] | single_turn [pass] | ⏳ 미판정 [title] | 확률 정보 공개 [question] | 천장 시스템이 있는 확률형 아이템은 기본 3가지 유형 외에 추가로 공개해야 하는 사항이 있나요? [answer] | 네, 천장 시스템이 있는 확률형 아이템은 기본 3가지 유형(캡슐형, 강화형, 합성형) 외에 추가적으로 확인 및 공개가 필요한 대상에 해당합니다. 메이플스토리 월드의 확률 정보 공개 가이드에 따르면, 확률형 아이템의 종류에는 기본 3가지 외에 추가 확인이 필요한 아이템 유형이 명시되어 있으며, 그중 하나인 'C. 소위 ‘천장’ 시스템이 있는 확률형 아이템'이 해당됩니다. 따라서 천장 시스템이 포함된 확률형 아이템을 제작할 경우, '확률형 아이템 확률 정보공개 관련 해설서'의 내용을 반드시 준수하여 아이템 사용 전 사용자에게 확률 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 확률 정보 공개란? 메이플스토리 월드의 모든 크리에이터는 창작한 아이템 내 확률형 아이템을 제공하는 경우 확률 정보 공개 가이드에 따라 아이템 사용 전 사용자에게 고지해야 할 의무가 있습니다. * 메이플스토리 월드의 확률 정보 공개 가이드는 ‘확률형 아이템 확률 정보공개 관련 해설서’의 내용을 따릅니다. 해당 해설서의 내용을 따르지 않을 경우 최대 월드 이용 제한이 적용될 수 있습니다. # 확률 정보 공개 대상 및 방법 아래 항목에 해당할 경우 확률형 아이템 정보 공개 대상이 될 수 있으며, 자세한 확률 정보 공개 대상 및

[task] | instruction_following [pass] | ⏳ 미판정 [title] | 스크립트 라이프 사이클 [question] | 테스트 플레이 실행 시 편집용 월드와 테스트 플레이용 월드의 생성 및 비활성화 흐름을 3단계 번호 목록으로 작성하세요. [answer] | 테스트 플레이 실행 시 편집용 월드와 테스트 플레이용 월드의 생성 및 비활성화 흐름은 다음과 같습니다. 1. **편집용 월드 비활성화**: 테스트 플레이를 실행하면 기존에 클라이언트에 존재하던 편집용 월드를 비활성화합니다. 2. **로컬 서버 실행 및 접속**: 로컬 서버를 실행하고 클라이언트가 해당 서버에 접속합니다. 3. **테스트 플레이용 월드 생성**: 서버와 클라이언트 양쪽에서 테스트 플레이용 월드를 생성합니다. 이때 서버는 편집 중인 맵만 불러오며, 클라이언트는 플레이어 엔티티가 있는 맵만 불러옵니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 서버와 클라이언트가 호출되는 전체 흐름을 알아봅시다. 플레이 라이프 사이클은 **제작 중인 월드**와 **출시된 월드**에서 약간의 차이가 있습니다. 가장 큰 차이점은 맵을 불러오는 방식입니다. * **제작 중인 월드**에서 플레이할 때는 10개의 맵을 만들었더라도 플레이어가 있는 맵만 불러옵니다. * **출시된 월드**에서는 플레이어 유무와 상관없이 모든 맵을 불러옵니다. 이와 같은 차이를 알고 있다면 **제작 중인 월드** 또는 **출시된 월드**에서 크리에이터 의도대로 동작하지 않는 무언가가 있을 때, 그 원인이 잘못된

[task] | instruction_following [pass] | ⏳ 미판정 [title] | 스크립트 라이프 사이클 [question] | 제작 중인 월드와 출시된 월드의 맵 불러오기 방식을 비교하여 2단 표로 정리하세요. [answer] | | 구분 | 제작 중인 월드 | 출시된 월드 | | :--- | :--- | :--- | | **맵 불러오기 방식** | 서버는 기본적으로 편집 중인 맵(플레이어가 있는 맵)만 불러옵니다. `EntityService`로 다른 맵의 엔티티를 조회하거나 포탈 등을 통해 다른 맵으로 이동하는 등 다른 맵에 접근할 경우에만 해당 맵이 추가로 불러와집니다. | 서버는 시작 시점에 플레이어 유무와 관계없이 전체 맵을 모두 불러옵니다. | | **클라이언트 동작** | 플레이어의 엔티티가 존재하는 맵만 불러옵니다. | 플레이어의 엔티티가 존재하 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 서버와 클라이언트가 호출되는 전체 흐름을 알아봅시다. 플레이 라이프 사이클은 **제작 중인 월드**와 **출시된 월드**에서 약간의 차이가 있습니다. 가장 큰 차이점은 맵을 불러오는 방식입니다. * **제작 중인 월드**에서 플레이할 때는 10개의 맵을 만들었더라도 플레이어가 있는 맵만 불러옵니다. * **출시된 월드**에서는 플레이어 유무와 상관없이 모든 맵을 불러옵니다. 이와 같은 차이를 알고 있다면 **제작 중인 월드** 또는 **출시된 월드**에서 크리에이터 의도대로 동작하지 않는 무언가가 있을 때, 그 원인이 잘못된

[task] | single_turn [pass] | ⏳ 미판정 [title] | 배지 서비스 활용하기 [question] | TriggerComponent와 SendBadgeInfo 컴포넌트를 각각 어떤 엔티티에 붙여야 플레이어가 특정 장소를 지나갈 때 배지 이벤트가 정상적으로 트리거되는지? [answer] | 플레이어가 특정 장소를 지나갈 때 배지 이벤트가 정상적으로 트리거되려면, **TriggerComponent**와 **SendBadgeInfo** 컴포넌트는 모두 **배지를 획득할 장소 역할을 하는 오브젝트 엔티티**에 함께 추가해야 합니다. 구체적인 구성은 다음과 같습니다. 1. **배지 획득 장소 오브젝트 엔티티**: * 이 엔티티에 **TriggerComponent**를 추가합니다. 이 컴포넌트가 플레이어가 지나가는 감지 영역을 만듭니다. * 이 엔티티에 **SendBadgeInfo** 컴포넌트를 추가 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 특정 장소를 지나가는 플레이어에게 배지를 지급해봅시다. 1. 플레이어 캐릭터가 배지를 획득할 장소 역할을 할 오브젝트를 골라 월드에 배치합니다. 2. 오브젝트에 **TriggerComponent**를 추가합니다. 3. Workspace - MyDesk에 새로운 **SendBadgeInfo 컴포넌트**를 생성하고, 배지를 획득하는 장소 오브젝트에 추가합니다. 4. 스크립트 에디터를 열어 **SendBadgeInfo 컴포넌트**에 배지 ID를 확인하기 위한 프로퍼티를 추가합니다. ```lua Property:

[task] | single_turn [pass] | ⏳ 미판정 [title] | 확률 정보 공개 [question] | 내 월드에서 무료 아이템으로만 확률 뽑기를 돌려도 확률 정보 공개 의무가 적용되나요? [answer] | 제공된 문서에 따르면, 확률 정보 공개 의무는 **"플레이어가 직접적ㆍ간접적으로 유상으로 구매하는 아이템"** 중 우연적 요소에 의하여 종류, 효과 및 성능 등이 결정되는 확률형 아이템에 적용됩니다. 따라서 **무료 아이템**으로만 확률 뽑기를 돌려도, 그 아이템이 "유상 구매"된 것이 아니라면 문서에 명시된 확률형 아이템의 정의(유상 구매 + 우연적 요소)에 해당하지 않으므로, 문서 기준으로 확률 정보 공개 의무 대상이 아닙니다. 다만, 무료 아이템을 획득하는 과정이나 아이템 자체의 성질이 문서에서 언급한 "직접적ㆍ간접적 유상 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 확률 정보 공개란? 메이플스토리 월드의 모든 크리에이터는 창작한 아이템 내 확률형 아이템을 제공하는 경우 확률 정보 공개 가이드에 따라 아이템 사용 전 사용자에게 고지해야 할 의무가 있습니다. * 메이플스토리 월드의 확률 정보 공개 가이드는 ‘확률형 아이템 확률 정보공개 관련 해설서’의 내용을 따릅니다. 해당 해설서의 내용을 따르지 않을 경우 최대 월드 이용 제한이 적용될 수 있습니다. # 확률 정보 공개 대상 및 방법 아래 항목에 해당할 경우 확률형 아이템 정보 공개 대상이 될 수 있으며, 자세한 확률 정보 공개 대상 및

[task] | single_turn [pass] | ⏳ 미판정 [title] | 배지 서비스 활용하기 [question] | HandleTriggerEnterEvent 핸들러에서 TriggerBodyEntity.SendBadgeInfo가 존재하는지 확인하는 if 문이 없으면 어떤 문제가 발생하며, 왜 이 가드가 필요한지? [answer] | `HandleTriggerEnterEvent` 핸들러에서 `TriggerBodyEntity.SendBadgeInfo`의 존재 여부를 확인하는 `if` 문이 없으면, 트리거 영역에 진입하는 모든 엔티티(플레이어, NPC, 다른 오브젝트 등)에 대해 무조건적으로 `SendBadgeInfo` 컴포넌트에 접근하게 됩니다. 메이플스토리 월드에서 `SendBadgeInfo` 컴포넌트는 배지 지급이 필요한 특정 장소 오브젝트에만 선택적으로 추가됩니다. 따라서 트리거에 닿는 모든 엔티티가 이 컴포넌트를 가지고 있는 것은 아닙니다. 존재하지 않는 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 특정 장소를 지나가는 플레이어에게 배지를 지급해봅시다. 1. 플레이어 캐릭터가 배지를 획득할 장소 역할을 할 오브젝트를 골라 월드에 배치합니다. 2. 오브젝트에 **TriggerComponent**를 추가합니다. 3. Workspace - MyDesk에 새로운 **SendBadgeInfo 컴포넌트**를 생성하고, 배지를 획득하는 장소 오브젝트에 추가합니다. 4. 스크립트 에디터를 열어 **SendBadgeInfo 컴포넌트**에 배지 ID를 확인하기 위한 프로퍼티를 추가합니다. ```lua Property:

[task] | single_turn [pass] | ⏳ 미판정 [title] | 배지 서비스 활용하기 [question] | BadgeSlot_01의 BadgeId 프로퍼티에 Badge Viewer에서 복사한 ID를 붙여넣기 전에 확인해야 할 점이나, ID가 잘못 입력되었을 때 나타나는 증상은 무엇인가요? [answer] | 제공된 문서에는 `BadgeId` 프로퍼티에 ID를 붙여넣기 전에 특별히 확인해야 할 사항이나, ID가 잘못 입력되었을 때 나타나는 구체적인 증상(예: 에러 메시지, 화면 표시 오류 등)에 대한 설명이 포함되어 있지 않습니다. 문서에서는 단순히 **Badge Viewer**에서 **Copy Badge ID**를 선택한 후, **BadgeSlot_01** 프로퍼티 창의 **BadgeId**에 붙여넣으라고만 안내하고 있으며, 잘못된 ID 입력 시의 동작 방식을 기술하지 않았습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 1. 새로운 **BadgeSlot 컴포넌트**를 생성하고 **BadgeSlot_01**에 추가합니다. 2. 획득한 배지의 이름, 소유 정보, 설명을 가져올 수 있도록 프로퍼티를 추가합니다. ```lua Property: [None] string BadgeId = "" -- 조회할 배지 ID [None] TextComponent BadgeTitle = nil -- 배지 이름 [None] TextComponent Hasbadge = nil -- 배지 소유 정보 [Non

[task] | instruction_following [pass] | ⏳ 미판정 [title] | 공동 제작 [question] | LocalWorkspace와 Cooperation 방식의 선택 기준을 단계별 번호 목록으로 요약하세요. [answer] | 참고 문서에 근거하여 LocalWorkspace와 Cooperation 방식의 선택 기준을 단계별 번호 목록으로 요약하면 다음과 같습니다. 1. **작업 환경 및 규모 기준** - **LocalWorkspace 방식**: 월드의 크기가 크거나 작업자의 수가 많은 경우를 선택합니다. 외부에서 스크립트를 작성한 뒤 메이플스토리 월드로 동기화(Sync)하는 방식을 사용합니다. - **Cooperation 방식**: 월드의 규모가 크지 않은 경우를 선택합니다. 메이커(Maker) 내부에서 월드를 제작하는 방식을 사용합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 다양한 사람들이 함께 모여 월드를 제작할 수 있는 방법에 대해 알아봅시다. ##### 참고 가이드 * [그룹 생성과 멤버 관리](/docs/?postId=1325"target":"_self"}) * [공동 제작 그룹 멤버의 등급과 권한](/docs/?postId=1077) * [LocalWorkspace](/docs/?postId=1165) * [ExtendedScriptFormat](/docs/?postId=1166) # 공동 제작 함께 월드를 제작하기 위해서는 우선 그룹을 형성하고, 멤버 권한을 설정해

[task] | two_turn [pass] | ⏳ 미판정 [title] | 배지 서비스 활용하기 [question] | PlayerGetBadge 컴포넌트에서 배지 수여 시 _BadgeService:AwardBadgeAndWait 호출 후 SendEvent가 실행되는 로직은 어떻게 동작하는지? [answer] | `PlayerGetBadge` 컴포넌트에서 `SendEvent`가 실행되는 로직은 서버와 클라이언트 사이에서 두 단계로 나뉘어 동작합니다. 1. **서버 측 처리 (`[server only]`)**: - `GetBadge(string BadgeID)` 메서드가 실행됩니다. - 먼저 `self.Entity.PlayerComponent.UserId`를 통해 현재 엔티티에 연결된 플레이어의 `UserId`를 `awardingUserId` 변수에 저장합니다. - `_BadgeService:AwardBadgeAndWait( [followup] | SendEvent 메서드에서 GetBadge()를 호출하여 이벤트를 생성하고 UI 버튼에 전달하는 과정의 코드 예시를 보여주세요. [followup_answer] | `PlayerGetBadge` 컴포넌트의 `[client]` 실행 공간에서 `SendEvent()` 메서드를 통해 배지 획득 이벤트를 생성하고 UI 버튼에 전달하는 코드는 다음과 같습니다. ```lua Method: [client] void SendEvent() { local badgeOpenBtn = _EntityService:GetEntityByPath("/ui/DefaultGroup/BadgeOpenBtn") local event = GetBadge() badgeOpenBtn:SendEvent(event [scores] | [judge_reason] | [source_doc] | 특정 장소를 지나가는 플레이어에게 배지를 지급해봅시다. 1. 플레이어 캐릭터가 배지를 획득할 장소 역할을 할 오브젝트를 골라 월드에 배치합니다. 2. 오브젝트에 **TriggerComponent**를 추가합니다. 3. Workspace - MyDesk에 새로운 **SendBadgeInfo 컴포넌트**를 생성하고, 배지를 획득하는 장소 오브젝트에 추가합니다. 4. 스크립트 에디터를 열어 **SendBadgeInfo 컴포넌트**에 배지 ID를 확인하기 위한 프로퍼티를 추가합니다. ```lua Property:

[task] | code [pass] | ⏳ 미판정 [title] | 공동 제작 [question] | 주어진 문서에는 mLua 스크립트 API, 컴포넌트, 또는 서비스 관련 정보가 전혀 포함되어 있지 않으며, 'Cooperation' 기능과 'Check Out/Check In' 워크플로만 설명하고 있습니다. 따라서 문서에 나온 API만으로 해결할 수 있는 mLua 코딩 과제를 생성할 수 없습니다. [answer] | 제시된 참고 문서에는 mLua 스크립트 API, 컴포넌트, 또는 서비스 관련 기술 정보가 포함되어 있지 않습니다. 해당 문서는 'Cooperation' 기능을 통한 공동 제작 워크플로(그룹 형성, Check Out/Check In 과정, 편집 권한 관리 등)에 대한 설명만 담고 있습니다. 따라서 문서에 명시된 mLua 코딩 과제나 API를 활용한 스크립트 예제를 작성할 수 없습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 다양한 사람들이 함께 모여 월드를 제작할 수 있는 방법에 대해 알아봅시다. ##### 참고 가이드 * [그룹 생성과 멤버 관리](/docs/?postId=1325"target":"_self"}) * [공동 제작 그룹 멤버의 등급과 권한](/docs/?postId=1077) * [LocalWorkspace](/docs/?postId=1165) * [ExtendedScriptFormat](/docs/?postId=1166) # 공동 제작 함께 월드를 제작하기 위해서는 우선 그룹을 형성하고, 멤버 권한을 설정해

[task] | single_turn [pass] | ⏳ 미판정 [title] | 배지 서비스 활용하기 [question] | SendEvent 메서드의 실행 공간이 [client]로 지정되어 있는데, 서버에서 발생한 트리거 이벤트를 클라이언트 UI에 전달하기 위해 이 구조가 어떻게 동작하는지? [answer] | 제시된 문서의 `PlayerGetBadge` 컴포넌트 예시를 보면, `HandleTriggerEnterEvent` 이벤트 핸들러와 `GetBadge` 메서드는 모두 `[server only]` 실행 공간에서 동작합니다. 즉, 트리거 감지 및 배지 수여 로직(`_BadgeService:AwardBadgeAndWait`)은 서버에서 처리됩니다. 서버에서 배지 수여가 성공적으로 완료되면 `GetBadge` 메서드 내에서 `self:SendEvent(awardingUserId)`를 호출합니다. 여기서 `SendEvent` 메서드는 `[c [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 특정 장소를 지나가는 플레이어에게 배지를 지급해봅시다. 1. 플레이어 캐릭터가 배지를 획득할 장소 역할을 할 오브젝트를 골라 월드에 배치합니다. 2. 오브젝트에 **TriggerComponent**를 추가합니다. 3. Workspace - MyDesk에 새로운 **SendBadgeInfo 컴포넌트**를 생성하고, 배지를 획득하는 장소 오브젝트에 추가합니다. 4. 스크립트 에디터를 열어 **SendBadgeInfo 컴포넌트**에 배지 ID를 확인하기 위한 프로퍼티를 추가합니다. ```lua Property:

[task] | single_turn [pass] | ⏳ 미판정 [title] | 배지 서비스 활용하기 [question] | EventHandler:ConnectEvent(GetBadge, ...)에서 GetBadge 이벤트가 트리거될 때마다 BadgeCheck()가 호출되는 구조에서, 이벤트 연결 누락 또는 중복 연결 시 발생할 수 있는 문제는 무엇인가요? [answer] | 제시된 문서 내용만으로는 `EventHandler:ConnectEvent(GetBadge, ...)`에서 이벤트 연결 누락 또는 중복 연결 시 발생하는 구체적인 문제(예: 메모리 누수, 다중 호출로 인한 성능 저하 등)에 대한 기술적 설명이 포함되어 있지 않습니다. 문서에는 해당 이벤트 연결 코드가 배지 상태 변경 확인을 위해 사용된다는 사실과, `GetBadge` 이벤트가 트리거될 때마다 `self:BadgeCheck()`가 호출된다는 구조적 정보만 제시되어 있습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 1. 새로운 **BadgeSlot 컴포넌트**를 생성하고 **BadgeSlot_01**에 추가합니다. 2. 획득한 배지의 이름, 소유 정보, 설명을 가져올 수 있도록 프로퍼티를 추가합니다. ```lua Property: [None] string BadgeId = "" -- 조회할 배지 ID [None] TextComponent BadgeTitle = nil -- 배지 이름 [None] TextComponent Hasbadge = nil -- 배지 소유 정보 [Non

[task] | single_turn [pass] | ⏳ 미판정 [title] | 월드 숍 서비스 활용하기 [question] | PassCheck 메서드에 [client]를 붙여놓고 OnBeginPlay에서 호출하는데, 이 구조가 클라이언트에서 실행되는 것이 맞는지 아니면 서버에서 실행되어야 하는지 헷갈립니다. [answer] | 제시된 참고 문서와 mLua 규칙을 바탕으로 `PassCheck` 메서드와 `OnBeginPlay`의 실행 구조를 분석하면, 현재 문서에 작성된 코드는 **문법적으로 모순이 있으며 정상 동작하지 않습니다.** 정확한 실행 로직과 수정 방향은 다음과 같습니다. ### 1. 문제점 분석 1. **`OnBeginPlay`의 실행 공간:** * 문서의 4단계 코드에서 `OnBeginPlay`는 `[server only]`로 선언되어 있습니다. * 이는 서버에서 한 번만 실행된다는 의미입니다. 2. **`Pas [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 상품이 구매한 유저에게 반영될 수 있도록 만들어 봅시다. 1. 새로운 **PlayerReward** 컴포넌트를 생성하고, **DefaultPlayer**에 추가합니다. 2. 아래와 같이 프로퍼티를 추가합니다. ```lua Property: [None] TextComponent PotionValue = /ui/DefaultGroup/MyPotionInfo/PotionValue [Sync] number Potion= 0 [None] TextCompone

[task] | two_turn [pass] | ⏳ 미판정 [title] | 배지 서비스 활용하기 [question] | 특정 장소를 지나가는 플레이어에게 배지를 지급하기 위해 어떤 컴포넌트들을 조합해야 하는지? [answer] | 특정 장소를 지나가는 플레이어에게 배지를 지급하기 위해 아래 두 가지 컴포넌트를 조합해야 합니다. 1. **배지 지급 정보 컴포넌트 (예: SendBadgeInfo)** * 배지를 획득할 장소 역할을 하는 오브젝트에 배치합니다. * `TriggerComponent`가 있는 오브젝트에 추가해야 트리거 이벤트를 수신할 수 있습니다. * 해당 컴포넌트에는 지급할 **배지 ID**를 저장하는 `string` 타입의 프로퍼티(예: `BadgeInfo`)가 필요합니다. 2. **배지 수여 로직 컴포넌트 [followup] | TriggerComponent와 SendBadgeInfo, PlayerGetBadge 컴포넌트 각각이 어떤 역할을 하는지 자세히 설명해 주세요. [followup_answer] | 제시된 참고 문서에 근거하여 각 컴포넌트의 역할을 자세히 설명해 드리겠습니다. **1. TriggerComponent** * **위치:** 배지를 획득할 장소 역할을 하는 오브젝트에 추가됩니다. * **역할:** 플레이어 캐릭터가 해당 장소를 지나가거나 부딪혔을 때 감지하는 트리거 기능입니다. * **동작 방식:** 플레이어가 트리거 영역에 진입하면 `HandleTriggerEnterEvent` 이벤트를 발생시킵니다. 이 이벤트를 통해 진입한 엔티티(`TriggerBodyEntity`) 정보를 받아后续的 로직(배지 수여 [scores] | [judge_reason] | [source_doc] | 특정 장소를 지나가는 플레이어에게 배지를 지급해봅시다. 1. 플레이어 캐릭터가 배지를 획득할 장소 역할을 할 오브젝트를 골라 월드에 배치합니다. 2. 오브젝트에 **TriggerComponent**를 추가합니다. 3. Workspace - MyDesk에 새로운 **SendBadgeInfo 컴포넌트**를 생성하고, 배지를 획득하는 장소 오브젝트에 추가합니다. 4. 스크립트 에디터를 열어 **SendBadgeInfo 컴포넌트**에 배지 ID를 확인하기 위한 프로퍼티를 추가합니다. ```lua Property:

[task] | two_turn [pass] | ⏳ 미판정 [title] | 확률 정보 공개 [question] | 확률 정보 공개 가이드를 따르지 않을 경우 크리에이터에게 적용되는 제재 수위는 어느 정도인가요? [answer] | 메이플스토리 월드의 확률 정보 공개 가이드를 따르지 않을 경우, 크리에이터에게는 **최대 월드 이용 제한**이 적용될 수 있습니다. [followup] | 월드 이용 제한 조치 전에 사전 경고나 시정 기간이 주어지는 절차가 있는지 궁금합니다. [followup_answer] | 제공된 참고 문서에는 사전 경고나 시정 기간에 대한 절차가 명시되어 있지 않습니다. 문서에는 확률 정보 공개 가이드(‘확률형 아이템 확률 정보공개 관련 해설서’)를 따르지 않을 경우 **최대 월드 이용 제한**이 적용될 수 있다는 제재 수위만 언급되어 있으며, 구체적인 행정 절차(경고, 시정 요청 등)에 대한 정보는 포함되어 있지 않습니다. [scores] | [judge_reason] | [source_doc] | # 확률 정보 공개란? 메이플스토리 월드의 모든 크리에이터는 창작한 아이템 내 확률형 아이템을 제공하는 경우 확률 정보 공개 가이드에 따라 아이템 사용 전 사용자에게 고지해야 할 의무가 있습니다. * 메이플스토리 월드의 확률 정보 공개 가이드는 ‘확률형 아이템 확률 정보공개 관련 해설서’의 내용을 따릅니다. 해당 해설서의 내용을 따르지 않을 경우 최대 월드 이용 제한이 적용될 수 있습니다. # 확률 정보 공개 대상 및 방법 아래 항목에 해당할 경우 확률형 아이템 정보 공개 대상이 될 수 있으며, 자세한 확률 정보 공개 대상 및

[task] | two_turn [pass] | ⏳ 미판정 [title] | 공동 제작 [question] | 메이플스토리 월드에서 공동 제작을 위해 사용할 수 있는 두 가지 방식과 각각의 특징이 무엇인가요? [answer] | 메이플스토리 월드에서 공동 제작을 위해 사용할 수 있는 두 가지 방식은 **LocalWorkspace**와 **Cooperation**입니다. 각 방식의 특징은 다음과 같습니다. 1. **LocalWorkspace** - **적용 상황**: 월드의 크기가 크거나 작업자의 수가 많은 경우. - **특징**: 로컬 환경에서 외부적으로 스크립트를 작성한 후, 다시 메이플스토리 월드로 동기화(Sync)시키는 방식을 사용합니다. 2. **Cooperation** - **적용 상황**: 월드의 규모가 크지 않거나, 멤버들의 [followup] | Cooperation 방식에서 엔티티를 편집할 때 Check Out과 Check In의 구체적인 절차와, 다른 멤버가 해당 엔티티를 잠금(Locked) 상태라고 인식하는 조건은 어떻게 되나요? [followup_answer] | Cooperation 방식에서 엔티티를 편집할 때의 Check Out/Check In 절차와 잠금(Locked) 상태 인식 조건은 다음과 같습니다. ### 1. 엔티티 편집 절차 (Check Out & Check In) 1. **Check Out (편집 권한 획득)** * **Hierarchy** 뷰에서 편집하고자 하는 엔티티를 선택합니다. * 콘텍스트 메뉴에서 **Check Out**을 선택합니다. * *참고:* Check Out을 명시적으로 선택하지 않고 편집 작업을 시작하면 **자동으로 C [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 다양한 사람들이 함께 모여 월드를 제작할 수 있는 방법에 대해 알아봅시다. ##### 참고 가이드 * [그룹 생성과 멤버 관리](/docs/?postId=1325"target":"_self"}) * [공동 제작 그룹 멤버의 등급과 권한](/docs/?postId=1077) * [LocalWorkspace](/docs/?postId=1165) * [ExtendedScriptFormat](/docs/?postId=1166) # 공동 제작 함께 월드를 제작하기 위해서는 우선 그룹을 형성하고, 멤버 권한을 설정해

[task] | code [pass] | ⏳ 미판정 [title] | 배지 서비스 활용하기 [question] | PlayerGetBadge 컴포넌트의 [client] SendEvent 메서드에서 _EntityService:GetEntityByPath("/ui/DefaultGroup/BadgeOpenBtn")로 UI 엔티티를 조회하고 GetBadge() 이벤트를 생성해 SendEvent로 전송하는 코드를 작성해줘 [answer] | `PlayerGetBadge` 컴포넌트의 `[client]` 실행 공간에서 동작하는 `SendEvent` 메서드입니다. 요청하신 경로(`/ui/DefaultGroup/BadgeOpenBtn`)로 UI 엔티티를 조회하고, `GetBadge()` 이벤트 객체를 생성하여 해당 엔티티에 `SendEvent`로 전달하는 로직입니다. ```lua Method: [client] void SendEvent() { local badgeOpenBtn = _EntityService:GetEntityByPath("/ui/DefaultGroup [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 특정 장소를 지나가는 플레이어에게 배지를 지급해봅시다. 1. 플레이어 캐릭터가 배지를 획득할 장소 역할을 할 오브젝트를 골라 월드에 배치합니다. 2. 오브젝트에 **TriggerComponent**를 추가합니다. 3. Workspace - MyDesk에 새로운 **SendBadgeInfo 컴포넌트**를 생성하고, 배지를 획득하는 장소 오브젝트에 추가합니다. 4. 스크립트 에디터를 열어 **SendBadgeInfo 컴포넌트**에 배지 ID를 확인하기 위한 프로퍼티를 추가합니다. ```lua Property:

[task] | code [pass] | ⏳ 미판정 [title] | 배지 서비스 활용하기 [question] | DefaultPlayer에 추가된 PlayerGetBadge 컴포넌트의 HandleTriggerEnterEvent 이벤트 핸들러에서, TriggerBodyEntity에 SendBadgeInfo 컴포넌트가 존재하는지 검사하고 존재할 경우 그 BadgeInfo 프로퍼티 값을 인자로 GetBadge 메서드에 전달하는 스크립트를 작성해줘 [answer] | 사용자가 요청한 `HandleTriggerEnterEvent` 이벤트 핸들러만 정확히 추출하여 작성합니다. ```lua Event Handler: [server only] [self] HandleTriggerEnterEvent(TriggerEnterEvent event) { --------------- Native Event Sender Info ---------------- -- Sender: TriggerComponent -- Space: Server, Client ------------------ [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 특정 장소를 지나가는 플레이어에게 배지를 지급해봅시다. 1. 플레이어 캐릭터가 배지를 획득할 장소 역할을 할 오브젝트를 골라 월드에 배치합니다. 2. 오브젝트에 **TriggerComponent**를 추가합니다. 3. Workspace - MyDesk에 새로운 **SendBadgeInfo 컴포넌트**를 생성하고, 배지를 획득하는 장소 오브젝트에 추가합니다. 4. 스크립트 에디터를 열어 **SendBadgeInfo 컴포넌트**에 배지 ID를 확인하기 위한 프로퍼티를 추가합니다. ```lua Property:

[task] | instruction_following [pass] | ⏳ 미판정 [title] | 스크립트 라이프 사이클 [question] | 표로 정리해서 `OnInitialize`, `OnUpdate`, `OnBeginPlay`의 서버/클라이언트 실행 환경 차이와 호출 시점을 비교하세요. [answer] | 제공된 참고 문서에는 `OnInitialize`, `OnUpdate`, `OnBeginPlay` 함수의 구체적인 **서버/클라이언트별 실행 환경 차이**나 **정확한 개별 호출 시점(타이밍)**에 대한 상세 설명이 포함되어 있지 않습니다. 문서에서 확인할 수 있는 정보만으로는 요청하신 표를 정확히 작성할 수 없습니다. 문서에서 언급된 관련 정보의 한계는 다음과 같습니다: 1. **기본 이벤트 함수 목록**: `OnInitialize`, `OnUpdate`, `OnBeginPlay`가 기본 이벤트 함수에 해당한다는 사실만 명시되 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | # 학습 과정 소개 기본 이벤트 함수의 라이프 사이클과 플레이할 때의 전체 라이프 사이클을 알아봅시다. 라이프 사이클을 이해하면 특정 함수가 언제 불리는지 예상할 수 있고, 전체 월드의 동작을 고려하며 제작할 수 있습니다. # 기본 이벤트 함수의 라이프 사이클 월드에 필요한 로직을 만들기 위해서는 컴포넌트 스크립트를 만들어야만 합니다. 필요한 컴포넌트 스크립트를 만들 때 호출되는 시점을 예상해 의도한 로직에 맞게 동작할 수 있도록 작성해야 합니다. 라이프 사이클의 개념을 익혀두면 전체 흐름을 파악할 수 있기에 스크립트를 작성

[task] | code [pass] | ⏳ 미판정 [title] | 배지 서비스 활용하기 [question] | PlayerGetBadge 컴포넌트의 GetBadge 메서드에서 _BadgeService:AwardBadgeAndWait 호출이 성공(true)할 경우에만 self:SendEvent(awardingUserId)를 호출하여 클라이언트로 이벤트를 전달하도록 로직을 구현하는 스크립트를 작성해줘 [answer] | PlayerGetBadge 컴포넌트에 배지 ID를 받아 서버에서 배지 수여를 시도하고, 성공 시에만 클라이언트로 이벤트를 보내는 로직은 다음과 같습니다. ```lua Method: [server only] void GetBadge(string BadgeID) { local awardingUserId = self.Entity.PlayerComponent.UserId if _BadgeService:AwardBadgeAndWait(awardingUserId, BadgeID) then self:SendEven [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 특정 장소를 지나가는 플레이어에게 배지를 지급해봅시다. 1. 플레이어 캐릭터가 배지를 획득할 장소 역할을 할 오브젝트를 골라 월드에 배치합니다. 2. 오브젝트에 **TriggerComponent**를 추가합니다. 3. Workspace - MyDesk에 새로운 **SendBadgeInfo 컴포넌트**를 생성하고, 배지를 획득하는 장소 오브젝트에 추가합니다. 4. 스크립트 에디터를 열어 **SendBadgeInfo 컴포넌트**에 배지 ID를 확인하기 위한 프로퍼티를 추가합니다. ```lua Property:

[task] | single_turn [pass] | ⏳ 미판정 [title] | 배지 서비스 활용하기 [question] | 버튼 클릭 시 배지 창이 열리지 않는다면, _EntityService:GetEntityByPath("/ui/BadgeLayer") 경로가 올바른지 확인하는 방법과 일반적인 오류 원인은 무엇인가요? [answer] | 제공된 참고 문서에는 `_EntityService:GetEntityByPath("/ui/BadgeLayer")` 경로가 올바르지 않을 때의 구체적인 진단 방법이나 일반적인 오류 원인 목록이 **기재되어 있지 않습니다.** 문서에서 설명하는 배지 창(`BadgeLayer`) 생성 및 연동 과정은 다음과 같으며, 코드가 정상 동작하지 않는다면 이 절차가 정확히 수행되었는지 우선적으로 확인해 보셔야 합니다. 1. **UI 에디터에서 BadgeLayer 추가:** UI 에디터에서 `BadgeLayer` 엔티티를 반드시 추가해야 합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 배지 획득 확인창을 여는 버튼을 만들고, 버튼을 누르면 '배지보기'에서 '닫기'로 바뀌게 만들어봅시다. 1. **UI 에디터 - DefaultGroup - BadgeOpenBtn** 버튼을 배치합니다. 2. 프로퍼티 에디터에서 TextComponent를 추가하고, **Text**에 **배지 보기**를 입력합니다. 3. 새로운 **BadgeOpenBtn 컴포넌트**를 생성하고, **BadgeOpenBtn**에 추가합니다. 4. 버튼을 클릭할 때 발생하는 ButtonClickEvent를 받아서 BadgeLayer 엔티티의 E

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