Unity UI 툴킷 마이그레이션 가이드
이 문서는 Unity UI(uGUI) 사용 경험이 있는 개발자를 위해 새로운 UI 툴킷 시스템으로 전환하는 방법을 안내합니다. 이 가이드는 UI 툴킷의 두 가지 사용 사례에 모두 적용되며, 런타임 및 에디터 UI를 모두 생성할 수 있습니다.
1. UI 계층 구조
- uGUI와 UI 툴킷은 모두 계층 구조 트리 구조 내에서 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. 혼합 사용
동일한 프로젝트에서 uGUI와 UI 툴킷을 혼합 사용할 수 있습니다. 그러나 UI 간의 고급 상호 작용은 작동하지 않으므로 주의해야 합니다.
6. 추가 리소스
이 가이드는 uGUI에서 UI 툴킷으로의 효과적인 마이그레이션을 위한 기초적인 내용을 제공합니다. 유용한 리소스를 통해 더 많은 정보를 얻고 실습하는 것을 권장합니다.