Crearea unei ferestre de editor personalizat în Unity

Capacitățile de scriptare a editorului Unity permit dezvoltatorilor să extindă funcționalitatea editorului Unity pentru a se potrivi nevoilor lor. O modalitate puternică de a face acest lucru este prin crearea de ferestre de editor personalizate. În acest tutorial, vom crea o fereastră simplă de editare personalizată care vă permite să redenumiți în lot obiectele jocului din scena dvs. Acest instrument poate economisi timp enorm atunci când aveți de-a face cu un număr mare de obiecte.

Pasul 1: Configurarea scriptului

În primul rând, trebuie să creăm un nou script care va defini fereastra editorului personalizat. În Unity, accesați Assets > Create > C# Script și denumește-l BatchRenamer.

Pasul 2: Scrierea scriptului pentru fereastra Editor personalizat

Deschideți scriptul BatchRenamer.cs și înlocuiți-i conținutul cu următorul cod:

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ția Codului

Iată ce face fiecare parte a scriptului:

  • BatchRenamer: EditorWindow: Această clasă moștenește de la EditorWindow, făcând-o o fereastră de editor personalizată.
  • [MenuItem(„Window/Batch Renamer”)]: Acest atribut adaugă un element la meniul Fereastra editorului Unity, permițându-vă să deschideți fereastra personalizată.
  • ShowWindow(): Această metodă este apelată când se face clic pe elementul de meniu. Se deschide fereastra editor personalizat.
  • OnGUI(): Această metodă este apelată pentru a desena interfața grafică a ferestrei. Acesta creează câmpuri pentru numele de bază și numărul de început și un buton pentru a declanșa procesul de redenumire.
  • RenameGameObjects(): Această metodă redenumește toate obiectele de joc selectate din scenă pe baza numelui de bază furnizat și a numărului de început.

Pasul 3: Utilizarea ferestrei Editor personalizat

Pentru a utiliza fereastra editor personalizat, urmați acești pași:

  1. Deschide Unity și selectează obiectele jocului pe care vrei să le redenumești în fereastra Ierarhie.
  2. Accesați Window > Batch Renamer pentru a deschide fereastra de editor personalizat.
  3. Introduceți un nume de bază și un număr de început în câmpurile furnizate.
  4. Faceți clic pe butonul Redenumiți. Obiectele de joc selectate vor fi redenumite în consecință.

Concluzie

Prin crearea de ferestre de editor personalizate, vă puteți îmbunătăți semnificativ productivitatea în Unity. Acest instrument simplu de redenumire în loturi este doar un exemplu despre cum puteți extinde editorul Unity pentru a se potrivi mai bine fluxului dvs. de lucru. Cu editorul de scripturi, posibilitățile sunt nelimitate, permițându-vă să creați instrumente care răspund în mod specific nevoilor proiectului dvs.