Erstellen eines benutzerdefinierten Editorfensters in Unity
Die Editor-Skriptfunktionen von Unity ermöglichen es Entwicklern, die Funktionalität des Unity-Editors nach ihren Bedürfnissen zu erweitern. Eine leistungsstarke Möglichkeit hierfür ist die Erstellung benutzerdefinierter Editorfenster. In diesem Tutorial erstellen wir ein einfaches benutzerdefiniertes Editorfenster, mit dem Sie Spielobjekte in Ihrer Szene stapelweise umbenennen können. Dieses Tool kann bei der Arbeit mit einer großen Anzahl von Objekten eine enorme Zeitersparnis bedeuten.
Schritt 1: Einrichten des Skripts
Zuerst müssen wir ein neues Skript erstellen, das unser benutzerdefiniertes Editorfenster definiert. Gehen Sie in Unity zu Assets > Erstellen > C#-Skript und nennen Sie es BatchRenamer.
Schritt 2: Schreiben des benutzerdefinierten Editor-Fensterskripts
Öffnen Sie das Skript BatchRenamer.cs und ersetzen Sie seinen Inhalt durch den folgenden Code:
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);
}
}
}
Erläuterung des Codes
Die einzelnen Teile des Skripts bewirken Folgendes:
- BatchRenamer: EditorWindow: Diese Klasse erbt von
EditorWindow
und macht sie zu einem benutzerdefinierten Editorfenster. - [MenuItem("Window/Batch Renamer")]: Dieses Attribut fügt dem Fenstermenü des Unity Editors ein Element hinzu, das Ihnen das Öffnen des benutzerdefinierten Fensters ermöglicht.
- ShowWindow(): Diese Methode wird aufgerufen, wenn auf das Menüelement geklickt wird. Sie öffnet das benutzerdefinierte Editorfenster.
- OnGUI(): Diese Methode wird aufgerufen, um die GUI des Fensters zu zeichnen. Sie erstellt Felder für den Basisnamen und die Startnummer sowie eine Schaltfläche zum Auslösen des Umbenennungsprozesses.
- RenameGameObjects(): Diese Methode benennt alle ausgewählten Spielobjekte in der Szene basierend auf dem angegebenen Basisnamen und der Startnummer um.
Schritt 3: Verwenden des benutzerdefinierten Editorfensters
Um das benutzerdefinierte Editorfenster zu verwenden, führen Sie diese Schritte aus:
- Öffnen Sie Unity und wählen Sie im Hierarchiefenster die Spielobjekte aus, die Sie umbenennen möchten.
- Gehen Sie zu Fenster > Stapelumbenennung, um das benutzerdefinierte Editorfenster zu öffnen.
- Geben Sie in den dafür vorgesehenen Feldern einen Basisnamen und eine Startnummer ein.
- Klicken Sie auf die Schaltfläche Umbenennen. Die ausgewählten Spielobjekte werden entsprechend umbenannt.
Abschluss
Durch die Erstellung benutzerdefinierter Editorfenster können Sie Ihre Produktivität in Unity deutlich steigern. Dieses einfache Tool zur Stapelumbenennung ist nur ein Beispiel dafür, wie Sie den Unity-Editor erweitern können, um ihn besser an Ihren Arbeitsablauf anzupassen. Mit Editor-Skripten sind die Möglichkeiten endlos und Sie können Tools erstellen, die speziell auf die Anforderungen Ihres Projekts zugeschnitten sind.