Zur Ankündigung von Unity 7 gehört auch ein neues Kommandozeilen-Werkzeug. Unity beschreibt die Unity CLI als eigenständige Schnittstelle für Editor, Projekte, Module und Authentifizierung. Das Tool geht damit deutlich über die bisherige Nutzung der Kommandozeile für automatisierte Builds hinaus und soll auch laufende Unity-Instanzen für Skripte, CI-Systeme und KI-Agenten zugänglich machen.
Eigenständige CLI für Installation und Automatisierung
Die Unity CLI wird als einzelnes Binary installiert und arbeitet unabhängig vom Unity Hub. Über die Kommandozeile lassen sich Unity-Editoren und Module installieren, Projekte mit der passenden Editor-Version öffnen und Authentifizierungsdaten verwalten. Mit Befehlen wie unity editors, unity install und unity open deckt die Schnittstelle typische Aufgaben auf einem Entwicklungsrechner oder Build-Server ab.
Für Automatisierungsszenarien liefert die CLI strukturierte Ausgaben im JSON- oder TSV-Format. Ergebnisse gehen an die Standardausgabe, Fehler an die Fehlerausgabe und die Prozesse verwenden klar definierte Rückgabewerte. Damit können Build-Skripte, Testsysteme und externe Werkzeuge den Status eines Vorgangs auswerten, ohne Log-Ausgaben des Editors parsen zu müssen. Nicht interaktive Installationen und die Anmeldung über Service-Accounts zielen außerdem auf CI-Umgebungen ohne grafische Oberfläche.
Laufender Editor wird zum Automatisierungsziel
Die Verbindung zu einem bereits geöffneten Projekt übernimmt das experimentelle Paket com.unity.pipeline. Es stellt eine lokale API bereit, über die die CLI einen laufenden Editor von Unity 6.0 LTS oder neuer ansprechen kann. Nach der Installation des Pakets listet unity command die verfügbaren Befehle auf und führt sie im verbundenen Editor aus. Das kann etwa den Start von Importvorgängen, eigene Werkzeuge oder automatisierte Tests betreffen.
Studios können eigene statische C#-Methoden mit dem Attribut CliCommand als CLI-Befehle bereitstellen. Parameter lassen sich über CliArg beschreiben. Eine zusätzliche Registrierung ist laut Unity nicht erforderlich, da das Paket die Befehle automatisch erkennt. Der gleiche Ansatz kann in einem Development-Player genutzt werden. Über den Parameter --runtime lassen sich dort Laufzeitprotokolle und Zustände abfragen oder Entwicklungsfunktionen anstoßen. Der Zugriff ist auf lokale Verbindungen beschränkt und für Player standardmäßig deaktiviert.
C#-Code im laufenden Projekt ausführen
Für nicht vorher definierte Aufgaben gibt es unity command eval. Der Befehl kompiliert einen C#-Ausdruck mit Roslyn und führt ihn im Hauptthread des laufenden Editors aus. Ein Projekt-Recompile oder Domain-Reload ist dafür nicht erforderlich. Mit unity command eval_file können auch Skriptdateien ausgeführt werden. Die Abfragen reichen damit von einfachen Statuswerten wie Application.version bis zum Zugriff auf Engine- und Editor-APIs. Ergebnisse können für die Weiterverarbeitung als JSON ausgegeben werden.
Unity begrenzt diese Funktion über ein Sicherheitstoken, weil eval nicht nur Informationen auslesen, sondern auch Änderungen an einer laufenden Instanz auslösen kann. Genau diese direkte Rückmeldung ist für automatisierte Entwicklungsabläufe interessant: Ein Werkzeug kann eine Szene untersuchen, eine Einstellung ändern, einen Test starten und das Resultat aus derselben Instanz zurücklesen. Der übliche Wechsel aus Bearbeiten, Kompilieren und Neustarten entfällt bei vielen kurzen Prüfungen.
Grundlage für KI-Agenten und eigene Werkzeuge
Unity positioniert die Kombination aus CLI, Pipeline-Paket und eval auch als Ausführungsschicht für KI-Agenten. Ein Agent kann ein Projekt öffnen, verfügbare Befehle abfragen, Änderungen anstoßen, Tests ausführen und Ergebnisse strukturiert zurückerhalten. Die Werkzeuge sind dabei nicht auf eine feste Befehlsliste beschränkt. Über eigene CliCommand-Methoden und den Zugriff auf Unity-APIs lässt sich die Oberfläche an ein konkretes Projekt anpassen.
Die offizielle Dokumentation führt die CLI weiterhin als experimentell. Auch das Pipeline-Paket und der Live-Zugriff können sich deshalb noch ändern. Für Produktionsumgebungen ist zudem eine klare Trennung wichtig: Unity beschreibt den Runtime-Zugriff ausdrücklich als Werkzeug für Development- und Qualitätssicherungs-Builds, nicht für ausgelieferte Spiele.
Details zu neuen Befehlen und Versionen veröffentlicht Unity in den Release Notes der Unity CLI. Die dort dokumentierte Entwicklung zeigt, dass Unity neben der klassischen Build-Automatisierung eine direkte, skriptfähige Verbindung zum laufenden Editor aufbaut.
