Unity UI 툴킷 마이그레이션 가이드

이 문서는 Unity UI(uGUI) 사용 경험이 있는 개발자를 위해 새로운 UI 툴킷 시스템으로 전환하는 방법을 안내합니다. 이 가이드는 UI 툴킷의 두 가지 사용 사례에 모두 적용되며, 런타임 및 에디터 UI를 모두 생성할 수 있습니다.

1. UI 계층 구조

  • uGUIUI 툴킷은 모두 계층 구조 트리 구조 내에서 UI를 빌드하고 유지 관리합니다.
  • uGUI에서 이 계층 구조의 모든 요소는 개별 게임 오브젝트로 표시됩니다.
  • UI 툴킷에서는 시각적 요소가 시각적 트리로 구성됩니다.

UI 디버거를 사용하여 UI 계층 구조를 확인하고 디버깅할 수 있습니다. 에디터 툴바의 Window > UI Toolkit > Debugger에서 UI 디버거를 찾을 수 있습니다.

항목 설명
UI 디버거 UI 계층 구조를 시각적으로 확인할 수 있는 도구입니다.

2. 주요 차이점

캔버스 vs. UIDocument

  • uGUI의 Canvas 컴포넌트는 UI 툴킷의 UIDocument 컴포넌트와 유사합니다.
  • 두 컴포넌트 모두 게임 오브젝트에 부착되며, UI 트리의 루트로써 역할을 합니다.

패널 설정

  • UIDocument은 패널 관련 설정을 포함하여 UI에 대한 렌더링 설정을 정의합니다.
  • 여러 UIDocument가 동일한 패널을 참조할 수 있어 성능이 최적화됩니다.
항목 설명
패널 설정 UI의 렌더링 설정을 정의하는 객체입니다.

3. UI 요소 및 이벤트

UI 요소 접근

  • uGUI에서 UI 요소에 접근하는 방법은 두 가지이며, 에디터에서 레퍼런스를 할당하거나 헬퍼 함수를 사용할 수 있습니다.
  • UI 툴킷에서는 게임 오브젝트가 없기 때문에, UIDocument 컴포넌트를 통해 시각적 트리에 접근해야 합니다.
액션 uGUI UI 툴킷
이름별 UI 요소 찾기 transform.FindChild("childName"); rootVisualElement.Query("childName");
타입별 UI 요소 찾기 transform.GetComponentInChildren rootVisualElement.Query
에디터에서 레퍼런스 직접 할당 가능 불가능

이벤트 처리

  • uGUI에서 UI 요소는 MonoBehaviour 기반으로, 이벤트를 노출해 다른 로직을 설정할 수 있습니다.
  • UI 툴킷에서는 UI 레이아웃과 로직이 별도로 저장되므로 모든 콜백을 런타임에 설정해야 합니다.

4. UI 레이아웃

  • uGUI에서는 UI 요소를 수동으로 정렬해야 하지만, UI 툴킷은 자동 레이아웃 시스템을 사용합니다.
  • UI 요소의 크기와 포지션은 동일한 부모 아래의 다른 요소에 영향을 받을 수 있습니다.
항목 설명
자동 레이아웃 시스템 UI 요소의 크기와 위치를 자동으로 조정합니다.

5. 혼합 사용

동일한 프로젝트에서 uGUIUI 툴킷을 혼합 사용할 수 있습니다. 그러나 UI 간의 고급 상호 작용은 작동하지 않으므로 주의해야 합니다.

6. 추가 리소스

이 가이드는 uGUI에서 UI 툴킷으로의 효과적인 마이그레이션을 위한 기초적인 내용을 제공합니다. 유용한 리소스를 통해 더 많은 정보를 얻고 실습하는 것을 권장합니다.