Unity 사용자 매뉴얼: UI 툴킷과 데이터 바인딩

개요

이 매뉴얼은 Unity에서 UI 툴킷을 사용하여 사용자 인터페이스(UI)를 생성하고 데이터 바인딩을 구현하는 방법을 설명합니다. 데이터 바인딩을 통해 UI 요소와 게임 오브젝트의 프로퍼티를 연결하여 상호작용할 수 있습니다.

선행 조건

이 가이드는 Unity 에디터, UI 툴킷 및 C# 스크립팅에 익숙한 개발자용입니다. 다음의 개념을 이해하고 있어야 합니다: - 시각적 트리 - UXML - 바인딩 경로

프로젝트 설정하기

  1. 프로젝트 폴더 생성: bind-with-uxml-csharp 라는 이름의 폴더를 생성합니다.
  2. UXML 파일 생성: binding_example.uxml 라는 이름의 UI 문서를 생성하고 다음 내용을 추가합니다.

C# 코드로 바인딩 만들기

  1. Editor 폴더 생성: Editor 라는 이름의 폴더를 생성합니다.
  2. 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;
                }
            }
        }
    }
}

바인딩 테스트하기

  1. Unity 에디터에서 테스트: Unity 에디터에서 Window > UIToolkitExamples > Simple Binding Example UXML를 선택합니다.
  2. 게임 오브젝트 선택: 씬에서 아무 게임 오브젝트를 선택합니다.
  3. 결과 확인: 선택한 게임 오브젝트의 이름이 에디터 창의 텍스트 필드에 표시됩니다. 텍스트 필드에서 게임 오브젝트의 이름을 변경하면, 게임 오브젝트의 이름이 실제로 변경됩니다.

추가 리소스

결론

이 가이드는 Unity의 UI 툴킷을 사용하여 데이터 바인딩을 설정하는 기본적인 방법을 설명하였습니다. 이를 통해 개발자는 사용자 인터페이스가 게임 오브젝트의 상태를 반영하고, 사용자와 상호작용할 수 있도록 할 수 있습니다.