在 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:使用自定义编辑器窗口

要使用自定义编辑器窗口,请按照以下步骤操作:

  1. 打开Unity并在Hierarchy窗口中选择您想要重命名的游戏对象。
  2. 转到 Window > Batch Renamer 打开自定义编辑器窗口。
  3. 在提供的字段中输入基本名称和起始编号。
  4. 点击“h6*重命名”按钮。所选游戏对象将相应重命名。

结论

通过创建自定义编辑器窗口,您可以显著提高 Unity 中的工作效率。这个简单的批量重命名工具只是扩展 Unity 编辑器以更好地适应您的工作流程的一个示例。使用编辑器脚本,可能性是无穷无尽的,允许您创建专门满足项目需求的工具。