Criando uma janela de editor personalizada no Unity

Os recursos de script do editor do Unity permitem que os desenvolvedores estendam a funcionalidade do Editor Unity para atender às suas necessidades. Uma maneira poderosa de fazer isso é criando janelas de editor personalizadas. Neste tutorial, criaremos uma janela de editor personalizada simples que permite renomear em lote objetos de jogo em sua cena. Essa ferramenta pode economizar muito tempo ao lidar com um grande número de objetos.

Etapa 1: Configurando o script

Primeiro, precisamos criar um novo script que definirá nossa janela de editor personalizada. Em Unity, vá para Assets > Create > C# Script e nomeie-o como BatchRenamer.

Etapa 2: Escrevendo o script da janela do editor personalizado

Abra o script BatchRenamer.cs e substitua seu conteúdo pelo seguinte código:

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);
        }
    }
}

Explicação do Código

Veja o que cada parte do script faz:

  • BatchRenamer: EditorWindow: Esta classe herda de EditorWindow, tornando-a uma janela de editor personalizada.
  • [MenuItem("Window/Batch Renamer")]: Este atributo adiciona um item ao menu Janela do Editor Unity, permitindo que você abra a janela personalizada.
  • ShowWindow(): Este método é chamado quando o item de menu é clicado. Ele abre a janela do editor personalizado.
  • OnGUI(): Este método é chamado para desenhar a GUI da janela. Ele cria campos para o nome base e número inicial, e um botão para disparar o processo de renomeação.
  • RenameGameObjects(): Este método renomeia todos os objetos de jogo selecionados na cena com base no nome base e no número inicial fornecidos.

Etapa 3: Usando a janela do editor personalizado

Para usar a janela do editor personalizado, siga estas etapas:

  1. Abra Unity e selecione os objetos do jogo que deseja renomear na janela Hierarquia.
  2. Vá para Janela > Renomeador em lote para abrir a janela do editor personalizado.
  3. Insira um nome base e um número inicial nos campos fornecidos.
  4. Clique no botão Renomear. Os objetos do jogo selecionados serão renomeados de acordo.

Conclusão

Ao criar janelas de editor personalizadas, você pode aumentar significativamente sua produtividade em Unity. Esta ferramenta simples de renomeação de lote é apenas um exemplo de como você pode estender o Editor Unity para melhor se adequar ao seu fluxo de trabalho. Com o script do editor, as possibilidades são infinitas, permitindo que você crie ferramentas que atendem especificamente às necessidades do seu projeto.