Unity 매뉴얼: 사용자 인터페이스(UI) 생성
이 문서는 Unity에서 사용자 인터페이스를 생성하는 방법을 설명합니다. 특히 UI 툴킷을 사용하여 에디터 UI를 만드는 방법에 중점을 두고 있습니다.
개요
이 예제에서는 게임 오브젝트의 이름을 변경하는 커스텀 에디터 창을 생성합니다. 이 예제에서 생성한 완성된 파일은 GitHub 저장소에서 확인할 수 있습니다.
선행 조건
- Unity 에디터, UI 툴킷, C# 스크립팅에 익숙한 개발자.
코드 예제: BindProperty 사용하기
BindProperty
메서드를 사용하여 UI 요소에 C# 프로퍼티를 바인딩하고 게임 오브젝트의 이름을 편집하는 방법을 보여줍니다.
폴더 및 파일 설정
- 빌드할 폴더의 이름을
bind-without-binding-path
로 설정합니다. - 이 폴더 내에
Editor
라는 이름의 하위 폴더를 생성합니다. Editor
폴더에서SimpleBindingPropertyExample.cs
라는 이름의 C# 스크립트를 생성하고 다음 코드를 추가합니다.
using UnityEditor;
using UnityEngine;
using UnityEditor.UIElements;
using UnityEngine.UIElements;
namespace UIToolkitExamples
{
public class SimpleBindingPropertyExample : EditorWindow
{
TextField m_ObjectNameBinding;
[MenuItem("Window/UIToolkitExamples/Simple Binding Property Example")]
public static void ShowDefaultWindow()
{
var wnd = GetWindow<SimpleBindingPropertyExample>();
wnd.titleContent = new GUIContent("Simple Binding Property");
}
public void CreateGUI()
{
m_ObjectNameBinding = new TextField("Object Name Binding");
rootVisualElement.Add(m_ObjectNameBinding);
OnSelectionChange();
}
public void OnSelectionChange()
{
GameObject selectedObject = Selection.activeObject as GameObject;
if (selectedObject != null)
{
SerializedObject so = new SerializedObject(selectedObject);
SerializedProperty property = so.FindProperty("m_Name");
m_ObjectNameBinding.BindProperty(property);
}
else
{
m_ObjectNameBinding.Unbind();
}
}
}
}
바인딩 테스트
- Unity 에디터에서
Window > UIToolkitExamples > Simple Binding Property Example
을 선택합니다. - 텍스트 필드가 있는 커스텀 에디터 창이 나타납니다.
- 씬에서 게임 오브젝트를 선택합니다.
- 게임 오브젝트의 이름은 에디터 창의 텍스트 필드에 표시됩니다.
- 텍스트 필드에서 게임 오브젝트의 이름을 변경하면 게임 오브젝트의 이름이 업데이트됩니다.
추가 리소스
결론
위의 과정은 Unity에서 UI를 생성하고 바인딩하는 방법을 보여줍니다. 이 기법을 활용하여 다양한 에디터 도구를 만들 수 있으며, 사용자 경험을 향상시킬 수 있습니다.