Unity에서 사용자 정의 편집기 창 만들기
Unity의 에디터 스크립팅 기능을 통해 개발자는 필요에 맞게 Unity 에디터의 기능을 확장할 수 있습니다. 이를 수행하는 한 가지 강력한 방법은 사용자 정의 편집기 창을 만드는 것입니다. 이 튜토리얼에서는 장면에서 게임 개체의 이름을 일괄적으로 바꿀 수 있는 간단한 사용자 정의 편집기 창을 만들어 보겠습니다. 이 도구는 많은 수의 개체를 처리할 때 시간을 크게 절약해 줍니다.
1단계: 스크립트 설정
먼저 사용자 정의 편집기 창을 정의할 새 스크립트를 만들어야 합니다. Unity에서 Assets > Create > C# Script로 이동하고 이름을 BatchRenamer로 지정합니다.
2단계: 사용자 정의 편집기 창 스크립트 작성
BatchRenamer.cs 스크립트를 열고 해당 내용을 다음 코드로 바꿉니다.
using UnityEditor;
using UnityEngine;
public class BatchRenamer : EditorWindow
{
private string baseName = "GameObject";
private int startNumber = 0;
[MenuItem("Window/Batch Renamer")]
public static void ShowWindow()
{
GetWindow<BatchRenamer>("Batch Renamer");
}
private void OnGUI()
{
GUILayout.Label("Batch Rename GameObjects", EditorStyles.boldLabel);
baseName = EditorGUILayout.TextField("Base Name", baseName);
startNumber = EditorGUILayout.IntField("Start Number", startNumber);
if (GUILayout.Button("Rename"))
{
RenameGameObjects();
}
}
private void RenameGameObjects()
{
GameObject[] selectedObjects = Selection.gameObjects;
for (int i = 0; i < selectedObjects.Length; i++)
{
selectedObjects[i].name = baseName + (startNumber + i);
}
}
}
코드 설명
스크립트의 각 부분이 수행하는 작업은 다음과 같습니다.
- BatchRenamer: EditorWindow: 이 클래스는
EditorWindow
에서 상속되어 사용자 정의 편집기 창으로 만듭니다. - [MenuItem("Window/Batch Renamer")]: 이 속성은 Unity 편집기의 창 메뉴에 항목을 추가하여 사용자 정의 창을 열 수 있도록 합니다.
- ShowWindow(): 이 메서드는 메뉴 항목을 클릭하면 호출됩니다. 사용자 지정 편집기 창을 엽니다.
- OnGUI(): 이 메서드는 창의 GUI를 그리기 위해 호출됩니다. 기본 이름과 시작 번호에 대한 필드와 이름 변경 프로세스를 트리거하는 버튼을 생성합니다.
- RenameGameObjects(): 이 메서드는 제공된 기본 이름과 시작 번호를 기반으로 장면에서 선택한 모든 게임 개체의 이름을 바꿉니다.
3단계: 사용자 정의 편집기 창 사용
사용자 정의 편집기 창을 사용하려면 다음 단계를 따르십시오.
- Unity을 열고 Hierarchy 창에서 이름을 바꾸려는 게임 개체를 선택합니다.
- 창 > 일괄 이름 변경으로 가서 사용자 정의 편집기 창을 여세요.
- 제공된 필드에 기본 이름과 시작 번호를 입력합니다.
- 이름 바꾸기 버튼을 클릭합니다. 선택한 게임 객체의 이름이 그에 따라 바뀝니다.
결론
사용자 정의 편집기 창을 생성하면 Unity에서 생산성을 크게 향상시킬 수 있습니다. 이 간단한 일괄 이름 변경 도구는 작업 흐름에 더 적합하도록 Unity 편집기를 확장할 수 있는 방법의 한 예일 뿐입니다. 편집기 스크립팅을 사용하면 가능성이 무궁무진하므로 프로젝트 요구 사항에 특별히 맞는 도구를 만들 수 있습니다.