Unity 사용자 매뉴얼 요약 (2022.3 LTS)
개요
이 문서는 Unity의 사용자 인터페이스(UI) 생성 및 관련 API 사용법을 설명합니다. 특히 UI 툴킷과 에디터 UI 지원 기능에 중점을 두고 있습니다.
주요 항목
항목 | 설명 |
---|---|
커스텀 에디터 창 만들기 | 예시를 통해 커스텀 에디터를 만드는 방법을 설명합니다. |
커스텀 인스펙터 만들기 | 커스텀 인스펙터를 만드는 방법을 예시를 통해 알아봅니다. |
SerializedObject 데이터 바인딩 | 데이터 바인딩을 이해하고 이를 수행하는 방법을 예시를 통해 배웁니다. |
ViewData 지속성 | ViewData API의 용도와 활용 방법을 설명합니다. |
커스텀 에디터 창 만들기
커스텀 에디터 창을 만드는 방법은 다음과 같습니다.
- 에디터 스크립트 작성: Unity의
Editor
네임스페이스를 사용하여 에디터 스크립트를 작성합니다. - UI 요소 배치: UI 툴킷을 사용하여 버튼, 슬라이더와 같은 UI 요소를 창에 배치합니다.
- 이벤트 처리: UI 요소의 클릭, 드래그 등의 이벤트를 처리하여 원하는 동작을 수행합니다.
예제 코드
using UnityEditor;
using UnityEngine;
public class MyCustomEditorWindow : EditorWindow
{
[MenuItem("Window/My Custom Editor")]
public static void ShowWindow()
{
GetWindow<MyCustomEditorWindow>("Custom Editor");
}
private void OnGUI()
{
// UI 요소를 그리는 코드
if (GUILayout.Button("Click Me"))
{
Debug.Log("Button clicked!");
}
}
}
커스텀 인스펙터 만들기
커스텀 인스펙터는 특정 컴포넌트에 대한 사용자 정의 UI를 제공합니다. 이를 통해 데이터의 시각화를 개선할 수 있습니다.
- CustomEditor 속성 사용:
CustomEditor
속성으로 특정 컴포넌트를 지정합니다. - OnInspectorGUI 메서드 오버라이드: 이 메서드를 오버라이드하여 사용자 정의 인스펙터 UI를 만듭니다.
예제 코드
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(MyComponent))]
public class MyComponentEditor : Editor
{
public override void OnInspectorGUI()
{
MyComponent myComponent = (MyComponent)target;
myComponent.myValue = EditorGUILayout.FloatField("My Value", myComponent.myValue);
}
}
데이터 바인딩
SerializedObject를 사용하여 데이터 바인딩을 구현할 수 있습니다. 이는 에디터 UI와 프로퍼티 간의 동기화를 가능하게 합니다.
- SerializedObject 생성: 대상 오브젝트를 사용하여
SerializedObject
를 생성합니다. - 속성 사용:
SerializedProperty
를 사용하여 개인 프로퍼티에 접근하고 UI를 업데이트합니다.
예제 코드
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(MyComponent))]
public class MyComponentEditor : Editor
{
SerializedProperty myValue;
void OnEnable()
{
myValue = serializedObject.FindProperty("myValue");
}
public override void OnInspectorGUI()
{
serializedObject.Update();
EditorGUILayout.PropertyField(myValue);
serializedObject.ApplyModifiedProperties();
}
}
추가 리소스
- 드래그 앤 드롭 UI 생성: 에디터 창 간의 드래그 앤 드롭 기능을 구현하는 방법.
- 런타임 UI 지원: 메시 API를 사용하여 방사형 진행 표시기를 만드는 방법.
이 문서에서는 Unity의 UI 툴킷과 에디터 UI 지원 기능을 활용하여 다양한 테크닉과 예제를 설명했습니다. 이를 통해 개발자는 더 나은 사용자 경험을 제공할 수 있습니다.