Unity 에디터 툴 가이드
이 문서는 Unity에서 에디터 툴을 제작하는 방법에 대한 공식 가이드를 한국어로 설명합니다. 이 가이드는 다양한 컨텍스트에서 어떻게 에디터 도구를 사용할 수 있는지에 대해 다루고 있으며, 추가 예제를 통해 더 깊은 이해를 도와줄 것입니다.
에디터 도구란?
에디터 도구는 Unity의 에디터에 통합되어 게임 오브젝트를 효율적으로 관리하고 수정할 수 있도록 돕는 도구입니다. 이 도구는 특정 게임 오브젝트나 컴포넌트에 대한 조작을 가능하게 합니다.
에디터 툴의 종류
- 전역 툴(Global Tools):
- 모든 게임 오브젝트에 영향을 미치는 도구입니다.
- 예: 이동, 회전 및 스케일 도구.
- 항상 사용할 수 있으며, 모든 타입의 게임 오브젝트에서 작동합니다.
- 컴포넌트 툴(Component Tools):
- 특정 컴포넌트에만 영향을 미칩니다.
- 예: Light 컴포넌트를 가진 게임 오브젝트에서 사용할 수 있는 커스텀 매니퓰레이터.
- 관련된 컴포넌트가 선택된 게임 오브젝트에만 활성화됩니다.
에디터 툴 사용하기
1. 툴 컨텍스트 설정
- Tool Context는 어떤 요소에 툴이 영향을 미칠지를 결정합니다.
- 기본 툴 컨텍스트는 게임 오브젝트입니다.
- 스플라인 툴 컨텍스트는 툴이 스플라인의 점이나 탄젠트에 영향을 줄 수 있도록 설정할 수 있습니다.
2. 툴 오버레이 활용
- 툴 오버레이는 씬 뷰 내에서 다양한 도구에 접근할 수 있게 해줍니다.
- 툴 오버레이의 첫 버튼을 클릭하여 원하는 툴 컨텍스트를 선택할 수 있습니다. 만약 추가 툴이 없다면 기본 게임 오브젝트 툴이 활성화됩니다.
에디터 툴 만들기 예제
아래는 Unity에서 컴포넌트 툴을 만드는 간단한 예제입니다.
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(Light))]
public class LightEditor : Editor
{
public override void OnInspectorGUI()
{
Light myLight = (Light)target;
myLight.intensity = EditorGUILayout.Slider("Light Intensity", myLight.intensity, 0, 10);
}
}
설명:
- 이 코드 스니펫은
Light
컴포넌트의 인스펙터를 커스터마이징하여 사용자가 조명 강도를 조절할 수 있는 슬라이더를 제공합니다.
추가 예제
전역 변환 툴을 사용하는 예제
using UnityEditor;
using UnityEngine;
public class TransformTool : Editor
{
[MenuItem("Tools/Reset Transform")]
public static void ResetTransform()
{
foreach (GameObject obj in Selection.gameObjects)
{
obj.transform.position = Vector3.zero;
obj.transform.rotation = Quaternion.identity;
obj.transform.localScale = Vector3.one;
}
}
}
설명:
- 선택한 모든 게임 오브젝트의 위치, 회전, 크기를 초기화하는 도구입니다.
결론
Unity의 에디터 툴을 이해하고 활용하는 것은 게임 개발 과정에서 매우 중요한 부분입니다. 전역 툴과 컴포넌트 툴을 적절히 사용함으로써 개발자는 효율성을 극대화할 수 있습니다. 이 가이드를 통해 제공된 예제들을 참고하여 자신만의 도구를 만드는 데 도움이 되길 바랍니다.