Tworzenie niestandardowego okna edytora w Unity

Możliwości tworzenia skryptów edytora Unity pozwalają programistom rozszerzać funkcjonalność edytora Unity do własnych potrzeb. Skutecznym sposobem na osiągnięcie tego jest utworzenie niestandardowych okien edytora. W tym samouczku utworzymy proste, niestandardowe okno edytora, które umożliwi zbiorczą zmianę nazw obiektów gry w Twojej scenie. To narzędzie może znacznie zaoszczędzić czas przy pracy z dużą liczbą obiektów.

Krok 1: Konfiguracja skryptu

Najpierw musimy utworzyć nowy skrypt, który zdefiniuje nasze niestandardowe okno edytora. W Unity przejdź do Assets > Create > C# Script i nazwij go BatchRenamer.

Krok 2: Napisanie skryptu okna edytora niestandardowego

Otwórz skrypt BatchRenamer.cs i zastąp jego zawartość następującym kodem:

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

Wyjaśnienie Kodeksu

Oto, co robi każda część skryptu:

  • BatchRenamer: EditorWindow: Ta klasa dziedziczy po EditorWindow, co czyni ją niestandardowym oknem edytora.
  • [MenuItem("Window/Batch Renamer")]: Ten atrybut dodaje element do menu Okno edytora Unity, umożliwiając otwarcie niestandardowego okna.
  • ShowWindow(): Ta metoda jest wywoływana po kliknięciu elementu menu. Otwiera okno edytora niestandardowego.
  • OnGUI(): Ta metoda jest wywoływana w celu narysowania GUI okna. Tworzy pola na nazwę bazową i numer startowy oraz przycisk uruchamiający proces zmiany nazwy.
  • RenameGameObjects(): Ta metoda zmienia nazwy wszystkich wybranych obiektów gry w scenie na podstawie podanej nazwy podstawowej i numeru początkowego.

Krok 3: Korzystanie z okna edytora niestandardowego

Aby użyć niestandardowego okna edytora, wykonaj następujące kroki:

  1. Otwórz Unity i wybierz obiekty gry, których nazwę chcesz zmienić w oknie Hierarchia.
  2. Przejdź do Window > Batch Renamer, aby otworzyć okno niestandardowego edytora.
  3. Wprowadź nazwę bazową i numer startowy w odpowiednich polach.
  4. Kliknij przycisk Zmień nazwę. Wybrane obiekty gry zostaną odpowiednio zmienione.

Wniosek

Tworząc niestandardowe okna edytora, możesz znacząco zwiększyć swoją produktywność w Unity. To proste narzędzie do zbiorczej zmiany nazw to tylko jeden przykład tego, jak możesz rozszerzyć edytor Unity, aby lepiej pasował do Twojego przepływu pracy. Dzięki skryptom edytora możliwości są nieograniczone, umożliwiając tworzenie narzędzi dostosowanych specjalnie do potrzeb Twojego projektu.