Unity 사용자 매뉴얼: UI 툴킷과 데이터 바인딩
개요
이 매뉴얼은 Unity에서 UI 툴킷을 사용하여 사용자 인터페이스(UI)를 생성하고 데이터 바인딩을 구현하는 방법을 설명합니다. 데이터 바인딩을 통해 UI 요소와 게임 오브젝트의 프로퍼티를 연결하여 상호작용할 수 있습니다.
선행 조건
이 가이드는 Unity 에디터, UI 툴킷 및 C# 스크립팅에 익숙한 개발자용입니다. 다음의 개념을 이해하고 있어야 합니다: - 시각적 트리 - UXML - 바인딩 경로
프로젝트 설정하기
- 프로젝트 폴더 생성:
bind-with-uxml-csharp
라는 이름의 폴더를 생성합니다. - UXML 파일 생성:
binding_example.uxml
라는 이름의 UI 문서를 생성하고 다음 내용을 추가합니다.
C# 코드로 바인딩 만들기
- Editor 폴더 생성:
Editor
라는 이름의 폴더를 생성합니다. - C# 스크립트 파일 생성:
SimpleBindingExampleUXML.cs
라는 이름의 스크립트 파일을 만들고 다음과 같은 내용을 추가합니다.
using UnityEditor;
using UnityEngine;
using UnityEditor.UIElements;
using UnityEngine.UIElements;
namespace UIToolkitExamples
{
public class SimpleBindingExampleUXML : EditorWindow
{
[SerializeField]
VisualTreeAsset visualTree;
[MenuItem("Window/UIToolkitExamples/Simple Binding Example UXML")]
public static void ShowDefaultWindow()
{
var wnd = GetWindow<SimpleBindingExampleUXML>();
wnd.titleContent = new GUIContent("Simple Binding UXML");
}
public void CreateGUI()
{
visualTree.CloneTree(rootVisualElement);
OnSelectionChange();
}
public void OnSelectionChange()
{
GameObject selectedObject = Selection.activeObject as GameObject;
if (selectedObject != null)
{
SerializedObject so = new SerializedObject(selectedObject);
rootVisualElement.Bind(so);
}
else
{
rootVisualElement.Unbind();
var textField = rootVisualElement.Q<TextField>("GameObjectName");
if (textField != null)
{
textField.value = string.Empty;
}
}
}
}
}
바인딩 테스트하기
- Unity 에디터에서 테스트: Unity 에디터에서
Window > UIToolkitExamples > Simple Binding Example UXML
를 선택합니다. - 게임 오브젝트 선택: 씬에서 아무 게임 오브젝트를 선택합니다.
- 결과 확인: 선택한 게임 오브젝트의 이름이 에디터 창의 텍스트 필드에 표시됩니다. 텍스트 필드에서 게임 오브젝트의 이름을 변경하면, 게임 오브젝트의 이름이 실제로 변경됩니다.
추가 리소스
결론
이 가이드는 Unity의 UI 툴킷을 사용하여 데이터 바인딩을 설정하는 기본적인 방법을 설명하였습니다. 이를 통해 개발자는 사용자 인터페이스가 게임 오브젝트의 상태를 반영하고, 사용자와 상호작용할 수 있도록 할 수 있습니다.