Создание собственного окна редактора в 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(): Этот метод вызывается для рисования графического интерфейса окна. Он создает поля для базового имени и начального номера, а также кнопку для запуска процесса переименования.
  • RenameGameObjects(): этот метод переименовывает все выбранные игровые объекты на сцене на основе предоставленного базового имени и начального номера.

Шаг 3. Использование окна пользовательского редактора

Чтобы использовать окно пользовательского редактора, выполните следующие действия:

  1. Откройте Unity и выберите игровые объекты, которые вы хотите переименовать, в окне «Иерархия».
  2. Перейдите в Окно > Пакетное переименование, чтобы открыть окно пользовательского редактора.
  3. Введите базовое название и стартовый номер в соответствующие поля.
  4. Нажмите кнопку Переименовать. Выбранные игровые объекты будут переименованы соответствующим образом.

Заключение

Создавая собственные окна редактора, вы можете значительно повысить свою производительность в Unity. Этот простой инструмент пакетного переименования — лишь один пример того, как вы можете расширить редактор Unity, чтобы он лучше соответствовал вашему рабочему процессу. Возможности редактора сценариев безграничны, позволяя создавать инструменты, специально отвечающие потребностям вашего проекта.