Unity UI Toolkit 사용하기
Unity에서 사용자 인터페이스(UI)를 생성할 때 UI Toolkit을 사용하여 보다 쉽게 UI 요소를 구성하고 조작할 수 있습니다. 이 문서에서는 UI Toolkit의 기본 요소인 UXML
에 대해 설명하고 예제를 제공합니다.
UXML 요소
UXML
은 Unity에서 UI 요소를 정의하는 XML 형식입니다. 이 속성을 통해 UI의 구조를 쉽게 설정할 수 있습니다. 아래는 기본적인 UXML
요소 및 관련 C# 클래스를 설명합니다.
EnumFlagsField
- 네임스페이스:
UnityEditor.UIElements
- 기본 클래스:
BaseMaskField_1
속성
속성명 | 타입 | 설명 |
---|---|---|
binding-path | string | 바인드될 타겟 프로퍼티의 경로입니다. |
focusable | boolean | 요소에 포커스를 맞출 수 있으면 true입니다. |
label | string | 필드 옆에 표시될 레이블을 나타내는 문자열입니다. |
tabindex | int | 포커스 링에서 정렬하는 데 사용됩니다. 0 이상이어야 합니다. |
value | string | 필드와 연결된 값입니다. |
VisualElement에서 상속된 속성
속성명 | 타입 | 설명 |
---|---|---|
content-container | string | 자식 요소가 추가되는 컨테이너입니다. |
name | string | VisualElement의 이름입니다. |
picking-mode | UIElements.PickingMode | 요소를 선택할 수 있는지를 결정합니다. |
style | string | 요소의 스타일 참조를 포함합니다. |
tooltip | string | 요소 위에 정보를 표시하는 텍스트입니다. |
usage-hints | UIElements.UsageHints | 사용 패턴에 대한 힌트 값입니다. |
view-data-key | string | 데이터 지속성에 사용되는 키입니다. |
C# 프로퍼티와 USS 선택자
C# 프로퍼티 | USS 선택자 | 설명 |
---|---|---|
ussClassName | .unity-enum-flags-field | 요소의 클래스명 |
label | .unity-enum-flags-field__label | 레이블의 클래스명 |
input | .unity-enum-flags-field__input | 입력 요소 클래스명 |
... | ... | ... |
이 외에도 다양한 속성과 클래스가 존재합니다. 각 요소에 대한 더 많은 정보를 이해하면 UI를 보다 효과적으로 디자인하고 최적화할 수 있습니다.
활용 예제
EnumFlagsField 예제 코드
using UnityEditor.UIElements;
using UnityEngine.UIElements;
public class MyEditorWindow : EditorWindow
{
[MenuItem("Window/MyEditorWindow")]
public static void ShowExample()
{
MyEditorWindow wnd = GetWindow<MyEditorWindow>();
wnd.titleContent = new GUIContent("My Editor Window");
}
public void CreateGUI()
{
EnumFlagsField enumFlagsField = new EnumFlagsField("Select Options");
||
||
rootVisualElement.Add(enumFlagsField);
}
[System.Flags]
public enum MyEnum
{
None = 0,
Option1 = 1,
Option2 = 2,
Option3 = 4
}
}
위 코드에서 EnumFlagsField
를 사용하여 다양한 옵션을 선택하도록 하는 요소를 생성했습니다. 이러한 방식으로 더욱 직관적이고 사용자 친화적인 UI를 개발할 수 있습니다.
결론
Unity의 UI Toolkit을 활용하면 효율적이고 유연한 사용자 인터페이스를 제작할 수 있습니다. UXML 요소 및 C# 속성을 잘 활용하여 개발하여보세요. UI 디자인은 게임의 전체적인 사용자 경험에 큰 영향을 미치므로, 신중하게 접근하는 것이 중요합니다.