Unity でカスタム エディター ウィンドウを作成する
Unity のエディター スクリプト機能により、開発者はニーズに合わせて Unity エディターの機能を拡張できます。これを行う強力な方法の 1 つは、カスタム エディター ウィンドウを作成することです。このチュートリアルでは、シーン内のゲーム オブジェクトの名前を一括変更できるシンプルなカスタム エディター ウィンドウを作成します。このツールは、多数のオブジェクトを扱うときに時間を大幅に節約できます。
ステップ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 を開き、階層ウィンドウで名前を変更するゲーム オブジェクトを選択します。
- [ウィンドウ] > [バッチ リネーム] に移動して、カスタム エディター ウィンドウを開きます。
- 指定されたフィールドにベース名と開始番号を入力します。
- 名前の変更 ボタンをクリックします。選択したゲーム オブジェクトの名前が変更されます。
結論
カスタム エディター ウィンドウを作成することで、Unity での生産性を大幅に向上できます。このシンプルなバッチ名前変更ツールは、Unity エディターを拡張してワークフローにさらに適合させる方法のほんの一例です。エディター スクリプトを使用すると、可能性は無限に広がり、プロジェクトのニーズに特化したツールを作成できます。