Creazione di una finestra dell'editor personalizzata in Unity

Le funzionalità di scripting dell'editor di Unity consentono agli sviluppatori di estendere le funzionalità dell'editor Unity in base alle proprie esigenze. Un modo efficace per farlo è creare finestre di editor personalizzate. In questo tutorial creeremo una semplice finestra di editor personalizzata che ti consentirà di rinominare in batch gli oggetti di gioco nella scena. Questo strumento può consentire un enorme risparmio di tempo quando si ha a che fare con un gran numero di oggetti.

Fase 1: Impostazione dello script

Innanzitutto, dobbiamo creare un nuovo script che definirà la nostra finestra dell'editor personalizzato. In Unity, vai a Assets > Crea > C# Script e chiamalo BatchRenamer.

Passaggio 2: scrivere lo script della finestra dell'editor personalizzato

Aprire lo script BatchRenamer.cs e sostituirne il contenuto con il seguente codice:

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

Spiegazione del Codice

Ecco cosa fa ogni parte dello script:

  • BatchRenamer: EditorWindow: questa classe eredita da EditorWindow, rendendola una finestra dell'editor personalizzata.
  • [MenuItem("Window/Batch Renamer")]: Questo attributo aggiunge una voce al menu Finestra dell'editor Unity, consentendo di aprire la finestra personalizzata.
  • ShowWindow(): questo metodo viene chiamato quando si fa clic sulla voce di menu. Apre la finestra dell'editor personalizzato.
  • OnGUI(): questo metodo viene chiamato per disegnare la GUI della finestra. Crea campi per il nome di base e il numero di partenza e un pulsante per attivare il processo di ridenominazione.
  • RenameGameObjects(): Questo metodo rinomina tutti gli oggetti di gioco selezionati nella scena in base al nome base e al numero di inizio forniti.

Passaggio 3: utilizzo della finestra dell'editor personalizzato

Per utilizzare la finestra dell'editor personalizzato, seguire questi passaggi:

  1. Apri Unity e seleziona gli oggetti di gioco che desideri rinominare nella finestra Gerarchia.
  2. Vai su Finestra > Batch Renamer per aprire la finestra dell'editor personalizzato.
  3. Inserisci un nome di base e un numero di partenza nei campi forniti.
  4. Fai clic sul pulsante Rinomina. Gli oggetti di gioco selezionati verranno rinominati di conseguenza.

Conclusione

Creando finestre di editor personalizzate, puoi migliorare significativamente la tua produttività in Unity. Questo semplice strumento di rinominazione batch è solo un esempio di come puoi estendere l'editor Unity per adattarlo meglio al tuo flusso di lavoro. Con lo scripting dell'editor, le possibilità sono infinite, consentendoti di creare strumenti che soddisfano specificamente le esigenze del tuo progetto.