[MSW] 메이플스토리 월드 UI 에디터의 이해

2022. 12. 4. 00:50MSW

※ 본 포스팅은 MSW 공식 디스코드 채널에 있는 개발 가이드 영상의 내용을 정리한 글입니다.

 

 

  • 서버에는 UI엔티티가 존재하지 않기 때문에, UI는 무조건 클라에서만 동작한다.
    (서버는 ui개체에 접근할 수 없다.)
    (여기서 말하는 UI엔티티란, World 하위의 ui 하위에 있는 엔티티들이다.)
    따라서 UI와 서버가 상호작용하기 위해서는 서버에 존재하는 엔티티와
    UI 사이의 중매역할을 하는 무언가가 있어야 한다.
  • Native모델에서 ui 개체를 씬에 끌어와 월드 상에 존재하는 ui엔티티를 생성할 수 있다.
  • UI엔티티에 스프라이트를 넣으려면 SpriteGuiRenderer 컴포넌트의 imageRUID를
    설정해줘야 한다. SpriteGUIRenderer 컴포넌트에는 preserveSprite 옵션이 있는데,
    aspectOnly는 스프라이트의 애니메이션까지 보여주고, NativeSize는 이름그대로
    스프라이트 원본의 사이즈를 따라가게 한다.
  • UI그룹엔티티의 UIGroup 컴포넌트의 DefaultShow옵션으로 처음 시작할 때의
    활성화/비활성화 상태를 지정해줄 수 있다. 
  • UI엔티티에 스크롤레이아웃그룹컴포넌트를 추가하기만 해주면
    유니티의 그리드와 비슷한 기능을 할 수 있다.
  • 어떤 이벤트를 수신하려 할 때, 수신받을 대상이 씬에 현재 존재하지 않는 상태이거나
    혹은 다른 말로 동적으로 생성된 엔티티의 이벤트를 설정하고 싶다면,
    ConnectEvent를 사용하면 된다. 동적 이벤트 연결이라고 볼 수 있다.
    targetEntity:ConnectEvent(targetEntity가 갖고 있는 이벤트, 1번째 인자가 가리키는 이벤트가 실행되었을 때
    실행시킬 동작이 담긴 메서드)