Unity 매뉴얼: UI 툴킷 및 C# 스크립트 바인딩 예제
이 문서는 Unity에서 사용자 인터페이스(UI)를 생성하고 C# 스크립트를 사용하여 데이터 바인딩을 구현하는 방법에 대해 설명합니다. 예제를 통해 여러분이 쉽게 따라 할 수 있도록 안내합니다.
개요
이 예제에서는 게임 오브젝트의 이름을 변경하는 커스텀 에디터 창을 생성합니다. 마지막에 완성된 파일은 GitHub에서 확인할 수 있습니다.
사전 준비
이 가이드는 Unity 에디터, UI 툴킷, C# 스크립팅에 익숙한 개발자를 위한 것입니다. 시작하기 전에 아래 사항을 숙지해야 합니다.
- bindingPath
- Bind()
바인딩 경로로 바인딩하기
TextField
를 사용하여 C#에서 커스텀 에디터 창을 만듭니다. 바인딩 경로를 게임 오브젝트의 이름 프로퍼티로 설정하고 Bind()
메서드를 명시적으로 호출합니다.
프로젝트 설정
- Unity에서 임의의 템플릿을 사용하여 새로운 프로젝트를 생성합니다.
- 프로젝트 창에서 파일을 저장할 폴더를
bind-with-binding-path
로 지정합니다. bind-with-binding-path
폴더에Editor
라는 이름의 폴더를 만듭니다.Editor
폴더에서SimpleBindingExample.cs
라는 이름의 C# 스크립트를 생성하고 다음과 같이 내용을 변경합니다.
using UnityEditor;
using UnityEngine;
using UnityEditor.UIElements;
using UnityEngine.UIElements;
namespace UIToolkitExamples
{
public class SimpleBindingExample : EditorWindow
{
TextField m_ObjectNameBinding;
[MenuItem("Window/UIToolkitExamples/Simple Binding Example")]
public static void ShowDefaultWindow()
{
var wnd = GetWindow<SimpleBindingExample>();
wnd.titleContent = new GUIContent("Simple Binding");
}
public void CreateGUI()
{
m_ObjectNameBinding = new TextField("Object Name Binding");
m_ObjectNameBinding.bindingPath = "m_Name";
rootVisualElement.Add(m_ObjectNameBinding);
OnSelectionChange();
}
public void OnSelectionChange()
{
GameObject selectedObject = Selection.activeObject as GameObject;
if (selectedObject != null)
{
SerializedObject so = new SerializedObject(selectedObject);
rootVisualElement.Bind(so);
}
else
{
rootVisualElement.Unbind();
m_ObjectNameBinding.value = "";
}
}
}
}
바인딩 테스트
Window > UIToolkitExamples > Simple Binding Example
을 선택합니다.- 텍스트 필드가 있는 커스텀 에디터 창이 나타납니다.
- 씬에서 아무 게임 오브젝트나 선택합니다.
- 게임 오브젝트의 이름이 에디터 창의 텍스트 필드에 표시됩니다.
- 텍스트 필드에서 게임 오브젝트의 이름을 변경하면 게임 오브젝트의 이름이 변경됩니다.
추가 리소스
이 문서가 Unity의 UI 툴킷과 C# 스크립트를 이해하는 데 도움이 되길 바랍니다!