Unity 사용자 매뉴얼 (2022.3 LTS) - UI 생성 가이드
개요
이 문서는 Unity의 UI 툴킷을 사용하여 사용자 인터페이스(UI)를 생성하는 방법에 대해 설명합니다. UXML 파일을 사용하여 UI를 구조화하고 C# 스크립트를 통해 UI 요소를 인스턴스화하고 로드하는 방법을 배울 것입니다.
1. UXML을 통한 UI 구조화
UXML 파일은 Unity의 UI 요소를 정의하는데 사용됩니다. 이 파일을 VisualTreeAsset으로 로드한 후, Instantiate()
메서드를 사용하여 UI를 생성합니다.
UI 인스턴스화 방법
- 부모 없이 인스턴스화:
Instantiate()
메서드를 사용하여 새로운 TemplateContainer를 생성합니다. - 부모 내 복제:
CloneTree(parent)
메서드를 사용하여 기존의 UI 요소를 특정 부모 객체 내에 복제합니다.
2. C# 스크립트에서 UXML 인스턴스화
C# 스크립트를 사용하여 UXML 파일을 로드하고 UI 요소를 인스턴스화하는 방법은 다음과 같습니다:
using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;
using UnityEditor.UIElements;
public class MyWindow : EditorWindow {
[MenuItem ("Window/My Window")]
public static void ShowWindow () {
EditorWindow w = EditorWindow.GetWindow(typeof(MyWindow));
VisualTreeAsset uiAsset = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>("Assets/MyWindow.uxml");
VisualElement ui = uiAsset.Instantiate();
w.rootVisualElement.Add(ui);
}
}
위 코드에서는 'MyWindow.uxml' 파일을 로드하고, 이를 새 창에 추가합니다.
3. UQuery로 시각적 요소 찾기
UQuery를 사용하면 생성된 UI 요소들 중에서 특정 요소를 찾을 수 있습니다. 이를 통해 추가적인 UI 조작이나 데이터 바인딩 등을 할 수 있습니다.
4. 추가 리소스
- C# 스크립트에서 UXML 및 USS 로드: 특정 스타일 시트를 적용할 수 있습니다.
- UQuery: UI 요소를 쉽게 검색할 수 있는 강력한 도구입니다.
활용 및 응용 예제
- 기본 UI 메뉴 만들기: 여러 개의 UXML 파일을 정의하여 복잡한 UI 메뉴를 생성할 수 있습니다.
- 동적인 데이터 표시: UXML과 C#의 데이터를 연결하여 실시간으로 데이터 변화를 반영하게 할 수 있습니다.
- 유저 맞춤형 설정 창: 사용자가 설정을 변경할 수 있는 UI를 UXML로 디자인하여 C# 스크립트로 관리합니다.
결론
Unity의 UI 툴킷과 UXML 파일을 사용하면 직관적이고 유지보수하기 쉬운 UI를 쉽게 만들 수 있습니다. 이 가이드를 토대로 다양한 응용 프로그램을 제작해 보시기 바랍니다.
Copyright © 2022 Unity Technologies. All rights reserved.