Article

Rencontrez l'Unity CLI: gérez Unity depuis votre terminal

ETIENNE WHITTOM / UNITY TECHNOLOGIESVP, Authoring Platform
Jul 20, 2026
Unity CLI
Cette page a été traduite automatiquement pour faciliter votre expérience. Nous ne pouvons pas garantir l'exactitude ou la fiabilité du contenu traduit. Si vous avez des doutes quant à la qualité de cette traduction, reportez-vous à la version anglaise de la page web.

TL;DR

  • Disponible dès maintenant: l'Unity CLI est un binaire Unity autonome pour gérer et interagir avec les éditeurs, les modules, les projets et l'authentification depuis le terminal. Pas besoin d'interface utilisateur; installer en ligne de commande.
  • Conçu pour l'automatisation: sortie JSON/TSV structurée, codes de sortie clairs, installations non interactives et authentification du compte de service pour CI.
  • Egalement disponible aujourd'hui: le paquet expérimental com.unity.pipeline permet à la CLI de piloter un Editor en cours d'exécution, ou une compilation dev Player, sur une API locale. Vous pouvez exposer vos propres commandes avec un attribut [CliCommand].
  • Unity command eval exécute le code C# en direct à l'intérieur d'un éditeur ou d'un lecteur en cours d'exécution et renvoie le résultat, sans aucune recompilation au niveau du projet ou rechargement de domaine requis.
  • Ensemble, ils permettent aux agents d'IA de faire fonctionner Unity: observer un projet en direct, agir dessus, et vérifier le résultat.

De plus en plus de développement se produit dans le terminal: dans les scripts, dans les CI, et de plus en plus dans les mains des agents d'IA. Aujourd'hui Unity vous y retrouve. L'Unity CLI apporte Unity au terminal à tous les niveaux: installez et gérez des éditeurs avec un seul binaire, pilotez un Editor en cours d'exécution à partir d'un script, et exécutez même du C# en direct à l'intérieur de votre projet sans recompiler. C'est une seule commande Unity rapide, et chaque couche va plus loin que la précédente : le CLI gère Unity, le paquet Pipeline le pilote et eval atteint à l'intérieur. Le CLI et le forfait Pipeline sont disponibles dès aujourd'hui.

Avant de creuser les choses, jetons un oeil à ce qui est possible lorsque ces fonctionnalités sont réunies:

Dans ce clip de 25 secondes, un développeur remet à un agent d'IA un rapport de bug en anglais clair: "le joueur tombe parfois par terre". L'agent utilise l'<code> d'évaluation des commandes Unity pour inspecter la scène en direct, trouve un collisionneur désactivé lors de l'exécution, le réactive et repasse en mode Lecture pour confirmer le correctif, observant le jeu en cours d'exécution, agissant dessus et vérifiant le résultat lui-même, sans copier-coller de la sortie de la console.

Qu'est-ce que l'Unity CLI

Le CLI est livré comme un seul binaire autonome. Il n'y a pas de dépendances à installer, et l'installation s'ajoute à votre PATH: lancez-le simplement comme Unity, et mettez-le à jour en place avec Unity upgrade. Au-delà des éditeurs et des projets, il gère également les modules et Authentication, une machine fraîche n'a donc besoin de rien d'autre.

Comme c'est un binaire natif, ça démarre vite, alors que l'ancien chemin sans tête Unity Hub (-- --headless) prenait sensiblement plus de temps. Cet écart s'additionne aux dizaines d'appels qu'un script ou un agent fait par tâche.

Démarrer

Installez-le avec le gestionnaire de paquets de votre plateforme:

# macOS or Linux
curl -fsSL https://public-cdn.cloud.unity3d.com/hub/prod/cli/install.sh | UNITY_CLI_CHANNEL=beta bash

# Windows
$env:UNITY_CLI_CHANNEL='beta'; irm https://public-cdn.cloud.unity3d.com/hub/prod/cli/install.ps1 | iex

(Note : La prise en charge des gestionnaires de paquets standards comme brew, winget et apt arrive bientôt. Reportez-vous à la documentation CLI pour la plus récente.)

Explorez ce qui est disponible:

unity --help

Installer un éditeur avec les modules dont vous avez besoin est un one-liner:

unity install 6000.2.10f1 -m android ios webgl

À partir de là, les commandes lisent de la façon que vous attendez : Unity editors pour voir ce qui est installé, Unity open pour lancer un projet avec le bon éditeur résolu, et Unity auth login pour se connecter. Vous ne savez pas quels ID de module une version a ? Unity modules list 6000.2.10f1 vous a couvert.

Conçu pour l'automatisation

Le CLI a été conçu pour vivre à l'intérieur de l'automatisation, pas seulement une coque interactive. Chaque commande peut émettre une sortie structurée que vous pouvez pipe directement dans votre outillage:

unity editors --format json
unity editors --format tsv

Les erreurs vont à stderr, les résultats à stdout, et les codes de sortie suivent un contrat simple (0 succès, 1 erreur, 130 annulés), donc les échecs sont faciles à attraper dans un pipeline.

Pour les installations sans surveillance, sautez chaque invite:

unity install 6000.2.10f1 -m android ios --accept-eula --yes

Sur un agent de compilation headless, il s'authentifie avec un compte de service via des variables d'environnement. Pas de navigateur, pas d'étape manuelle. Et Unity Doctor diagnostique les problèmes d'environnement, d'identification et de configuration.

Parler à la rédaction

La gestion des installations n'est que la moitié de l'histoire. L'Unity CLI peut également piloter un éditeur en cours d'exécution.

Une fois ajouté à un projet, com.Unity.pipeline permet à un éditeur en cours d'exécution de recevoir des commandes du CLI entièrement sur votre machine. Il fonctionne avec Unity 6.0 LTS et les versions ultérieures, et transforme l'éditeur en cible d'automatisation programmable pour les scripts, les travaux CI et les outils agentiques.

L'ajouter à un projet est une commande unique:

unity pipeline install

Vous pouvez vérifier lequel de vos projets l'a installé avec Unity pipeline list. Avec le package en place, vous pouvez exécuter des commandes enregistrées contre un éditeur connecté (ou même un runtime Player) directement depuis le terminal :

# List the commands a connected Editor exposes
unity command

# Run one of them
unity command <command-name>

Ces commandes ne sont pas fixes. Toute méthode statique dans votre projet le devient en ajoutant un attribut [CliCommand], avec [CliArg] sur ses paramètres:

using Unity.Pipeline.Commands;
using UnityEngine;

public static class MyPipelineCommands
{
    [CliCommand("greet", "Log a greeting and return its length")]
    public static int Greet(
        [CliArg("name", "Who to greet", Required = true)] string name)
    {
        Debug.Log($"Hello, {name}!");
        return name.Length;
    }
}

Le package le découvre automatiquement, sans étape d'enregistrement. Unity command greet --name World l'exécute contre l'éditeur connecté et renvoie le résultat.

Le forfait Pipeline est disponible dès aujourd'hui. Il est actuellement expérimental, donc attendez-vous à ce qu'il évolue. Il vous permet d'automatiser ce qui nécessitait un humain dans l'éditeur: déclenchement des importations, exécution des tests, outillage personnalisé.

Ça ne s'arrête pas à l'éditeur. Déposez son composant d'exécution dans une compilation de développement et votre jeu en cours d'exécution expose le même type d'API. Pointez la CLI dessus avec la commande Unity --runtime pour extraire les journaux en direct, l'état d'exécution de la requête ou le code de rechargement à chaud dans une compilation qui est déjà en cours de lecture. C'est localhost seul et désactivé par défaut (pour les builds de développement et d'AQ, jamais la production), mais il transforme un Player en cours d'exécution en quelque chose qu'un script, un test rig ou un agent d'IA peut piloter dans une instance d'exécution en direct.

Unity CLI<->running Editor via com.Unity.pipeline

Exécuter des scripts C# avec eval

Les commandes enregistrées couvrent les opérations que vous avez anticipées. Unity command eval couvre celles que vous n'avez pas. Il évalue une expression C# arbitraire à l'intérieur d'un éditeur en cours d'exécution et vous renvoie le résultat: une boucle de lecture-évaluation-impression (REPL) en direct dans votre projet, à partir du terminal.

unity command eval "return Application.version;"
unity command eval "return UnityEditor.EditorApplication.isPlaying;"
unity command eval "var s = Application.dataPath; return s.Length;" --json
unity command eval_file "path/to/script.cs"

Il est compilé avec Roslyn et exécuté sur le thread principal de l'éditeur, donc il atteint n'importe quel moteur ou API éditeur que votre projet peut, et le même drapeau - runtime vise un lecteur en direct. Parce que ce courant coupe dans les deux sens, Eval est fermé derrière un jeton de sécurité. Pas de commande prédéfinie, pas de plugin, pas de recompilation: si vous pouvez exprimer une question en C#, vous pouvez poser une instance Unity en cours d'exécution.

L'avantage, c'est la vitesse. Le cycle habituel de modification et de vérification (édition, recompilation, relance) coûte au mieux quelques secondes; évaluez les réponses en millisecondes par rapport à une instance déjà en place. Parmi les nombreux appels qu'un script ou un agent fait dans une session, cette différence s'additionne, et c'est exactement ce qui donne à un agent d'IA une boucle de rétroaction étroite au lieu d'une boucle lente.

Itérer en une fraction du temps

Une fondation pour le développement assisté par l’IA

Ces pièces (une CLI scriptable, un éditeur programmable et un REPL live) ajoutent plus que de la commodité. Ce sont eux qui rendent possible la démo en haut de ce billet, et ils transforment Unity en un environnement dans lequel un agent d’IA peut réellement travailler.

Les assistants de codage IA sont doués pour écrire du code et du contenu. Historiquement, ils ont eu du mal avec tout ça : diriger le projet, voir ce qui s'est cassé, réessayer. Un assistant peut générer un script de gameplay mais ne peut pas lancer les tests pour voir si cela fonctionne. La couche Unity CLI et Pipeline comble cet écart.

Deux propriétés font la différence. Premièrement, le CLI parle un langage que les agents comprennent: JSON structuré et un contrat de code de sortie prévisible signifient qu'un modèle obtient des résultats propres et analysables au lieu de texte de console scrappé. Les mêmes qualités qui le rendent fiable en CI le rendent fiable en tant qu'outil qu'un agent appelle.

Deuxièmement, le paquet Pipeline rend l'éditeur auto-décrit: exécutez la commande Unity sans arguments et un éditeur connecté signale les opérations qu'il expose. Un agent découvre ce qu'il peut faire à l'exécution au lieu de se fier à une liste codée en dur. Et comme les commandes sont enregistrées avec des attributs simples, votre équipe peut exposer des opérations spécifiques à un projet en tant qu'outils appelables par un agent. Cela signifie que chaque commande enregistrée se mappe naturellement dans le type d'outil qu'un agent sait déjà invoquer.

Mettez-les ensemble et vous obtenez une véritable boucle de rétroaction : un assistant peut ouvrir le projet, appliquer une modification, exécuter les tests, entrer en mode Lecture pour vérifier le comportement, lire le résultat et décider de la suite, sans relai humain de sortie d'avant en arrière. C'est le passage d'un assistant qui suggère à un assistant qui peut vérifier. C'est aussi un ajustement naturel pour les standards émergents d'agents : chaque commande enregistrée mappe sur le type d'outil qu'un modèle d'appel de fonction ou un serveur MCP sait déjà invoquer.

Et il n'y a pas de liste fixe de ce qu'un agent peut faire. Comme eval atteint n'importe quelle API que votre projet peut appeler, la surface de capacité d'un agent est la même que celle d'Unity: rendu, physique, animation, base de données d'actifs, l'éditeur lui-même, plus tout ce que votre propre code ajoute. Cette portée est le résultat de plus d'une décennie de travail API, et un agent l'obtient sans aucune intégration supplémentaire.

Un tuyau vers toute l'API d'Unity
Un tuyau vers toute l'API d'Unity

Nous en sommes au début, et les primitifs sont déjà là aujourd'hui. Si vous créez des outils assistés par l'IA pour Unity, le package Pipeline est le point de départ.

Quelle est sa relation avec les offres d’IA d’Unity

Si vous utilisez les offres d’IA d’Unity, comme la suite assistante In-Editor, c’est la couche sous celle-ci. L’IA d’Unity est la partie qui raisonne sur votre projet et qui décide quoi faire. La CLI et le paquet Pipeline sont la surface d'exécution qui exécute ces décisions : rapide, locale et à jetons. La même surface est ouverte à n'importe quel agent, qu'il s'agisse du propre routage d'outillage d'Unity via son serveur MCP, d'un assistant tiers ou d'un script que vous écrivez vous-même. L’IA d’Unity en est l’un des consommateurs, et non le remplaçant.

Disponible dès maintenant

L'Unity CLI est là. Installez-le, exécutez Unity --help et pliez-le dans votre prochain script de compilation ou dans votre prochain travail CI, ou automatisez-le avec un agent. La documentation a la référence complète de la commande. Dites-nous ce que vous construisez; vos commentaires façonnent la suite.

Déclaration de sphère de sécurité : Cette feuille de route représente les intentions actuelles d'Unity pour le développement de notre suite de produits. Il n'est fourni qu'à titre informatif et ne constitue pas un engagement à fournir une caractéristique ou une fonctionnalité spécifique. Les informations fournies peuvent être modifiées à tout moment, et Unity n'offre aucune garantie quant au contenu, au calendrier ou à la nature des versions futures. L'utilisateur ne doit pas se fier à cette feuille de route pour toute décision critique pour l'entreprise.