この25秒のクリップでは、開発者がAIエージェントに「プレイヤーが時々床に落ちてしまう」という平易な英語のバグレポートを手渡します。エージェントはUnityコマンド評価<code>を使用してライブシーンを検査し、ランタイムで無効になっているコライダーを見つけて再度有効にし、再生モードに再突入して修正を確認し、実行中のゲームを観察して動作し、結果そのものを検証します。コンソール出力のコピーペーストは必要ありません。
Unity CLIに対応:端末からUnityを管理

TL;DR
- 現在利用可能:Unity CLIは、エディタ、モジュール、プロジェクト、および端末からのauthを管理し、操作するためのスタンドアロンのUnityバイナリです。UIは不要。コマンドラインからインストール。
- 自動化のための構築:構造化されたJSON/TSV出力、終了コード消去、非対話型インストール、CI用のサービスアカウント認証。
- また、現在は試験的なcom.Unity.パイプラインパッケージにより、CLIで実行中のエディター、つまり開発プレイヤーのビルドをローカルAPI上で実行できます。[CliCommand]属性で独自のコマンドを公開できます。
- Unityコマンド評価は、実行中のエディターまたはプレイヤー内でC#コードをライブ実行し、結果を返します。プロジェクトレベルの再コンパイルやドメインリロードは必要ありません。
- これらを組み合わせることで、AIエージェントがUnityを操作できるようになります。ライブプロジェクトを観察し、それに基づいて行動し、結果を検証します。
開発は端末でどんどん行われ、スクリプトやCI、そしてAIエージェントの手に渡ることが増えている。今日Unityはそこであなたと会います。Unity CLIはあらゆるレベルでUnityを端末にもたらします。1つのバイナリでエディターをインストールして管理し、スクリプトから実行中のエディターをドライブし、再コンパイルなしでプロジェクト内でライブC#を実行することもできます。これは単一の高速なUnityコマンドであり、各レイヤーは最後のレイヤーよりもさらに進んで、CLIがUnityを管理し、パイプラインパッケージがそれを実行し、評価がその内部に到達します。CLIとパイプラインパッケージの両方が本日より利用可能となります。
物事を掘り下げる前に、これらの機能が組み合わさったときに何が可能になるかを見てみましょう。
Unity CLIとは
CLIは、単一の自己完結型バイナリとして出荷されます。インストールに依存関係はなく、インストールするとPATHに追加され、Unityとして実行し、Unityアップグレードで所定の位置にアップデートするだけです。エディタやプロジェクト以外にも、モジュールや認証も処理するため、新しいマシンには何も必要ありません。
ネイティブバイナリなので起動が早いのに対して、旧Unity Hubのヘッドレスパス (- -headless) は顕著に時間がかかりました。このギャップは、スクリプトやエージェントがジョブごとに行う数十の呼び出しで合計されます。
詳しくみる
プラットフォームのPackage Managerでインストールします。
# 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(注意:brew、winget、aptなどの標準パッケージマネージャのサポートは近日中に開始される予定です。最新のものについてはCLIドキュメントを参照)。
利用できるものを探る:
unity --help必要なモジュールを含むエディタのインストールはワンライナーです。
unity install 6000.2.10f1 -m android ios webglそこから、コマンドが期待通りの動作をします。Unityエディターでインストール内容を確認し、Unityオープンで適切なエディターを解決してプロジェクトを起動し、Unity認証ログインでサインインします。バージョンがどのモジュールIDを持っているか不明ですか?Unityモジュールリスト6000.2.10f1で説明されています。
自動化のために構築された
CLI は対話シェルだけでなく、自動化の内部で動作するように構築されました。すべてのコマンドは、ツールに直接パイプできる構造化出力を出すことができます:
unity editors --format json
unity editors --format tsvエラーはstderrに送信され、結果はstdoutに送信され、終了コードは単純なコントラクト(0成功、1エラー、130キャンセル)に従うため、失敗はパイプラインでキャッチされやすくなります。
無人インストールの場合、プロンプトごとにスキップ:
unity install 6000.2.10f1 -m android ios --accept-eula --yesheadlessビルドエージェントでは、環境変数を介してサービスアカウントで認証されます。ブラウザーも手動ステップも不要。およびUnityドクターが環境、資格情報、および構成の問題を診断します。
編集者と話す
インストールの管理は、まだ半分の話です。Unity CLIは実行中のEditorを動かすこともできます。
com.Unity.パイプラインをプロジェクトに追加すると、実行中のエディターがCLIからコマンドを完全にマシン上で受信できるようになります。Unity 6.0 LTS以降で動作し、Editorをスクリプト、CIジョブ、エージェントツールのプログラマブルな自動化ターゲットに変換します。
プロジェクトへの追加は1つのコマンドです。
unity pipeline installUnityパイプラインリストでどのプロジェクトにインストールされているか確認できます。パッケージが揃っていると、接続されたEditor(またはプレイヤーランタイム)に対して、端末から直接登録されたコマンドを実行することができます。
# List the commands a connected Editor exposes
unity command
# Run one of them
unity command <command-name>それらのコマンドは固定されたセットではありません。プロジェクト内の静的メソッドは、[CliCommand]属性を追加することで1つになり、パラメータに[CliArg]が設定されます。
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;
}
}パッケージは登録ステップなしで自動的に検出します。Unityコマンドgreet --name Worldは接続されているEditorに対して実行し、結果を戻します。
パイプラインパッケージは、本日より提供が開始されます。現在は試験的なため、進化を期待してください。Editorで人間が必要としていたインポートのトリガ、テストの実行、カスタムツールの作成を自動化できます。
Editorでは停止しません。ランタイムコンポーネントを開発ビルドにドロップすると、実行中ゲームで同種のAPIが公開されます。Unityコマンド --ランタイム<プレイヤー実行名>でCLIをポイントし、すでに再生中のビルドのライブログ、クエリランタイムステータス、またはホットリロードコードを取得します。デフォルトではlocalhost専用でオフになっていますが(devとQAのビルドでは、本番環境には適用されません ) 、 実行中のプレイヤーをスクリプト、テストリグ、AIエージェントがライブランランタイムインスタンスで駆動できるものに変換します。
Unity CLI<->running Editor via com.unity.pipeline
評価付きでC#スクリプトを実行
登録したコマンドは、予想していた操作をカバーします。Unityコマンド評価は、予想していなかった操作をカバーします。実行中のエディタ内の任意のC#式を評価し、その結果をプロジェクトに返します。端末から、ライブの読み取り-評価-印刷ループ(REPL)です。
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"Roslynでコンパイルされ、Editorのメインスレッドで実行されるため、プロジェクトが実行できるあらゆるエンジンやエディターAPIに到達できます。同じ--ランタイムフラグがライブプレイヤーを狙っています。その電力は双方向を切断するため、evalはセキュリティトークンの背後にゲートされる。事前定義コマンド、プラグイン、再コンパイルは不要で、質問がC#で表現できれば、実行中のUnityインスタンスに質問することができます。
長所はスピード。通常の変更とチェックのサイクル(編集、再コンパイル、再起動)には、せいぜい数秒かかります。すでに起動しているインスタンスに対するeval Answersはミリ秒単位です。スクリプトやエージェントがセッションで行う多くの呼び出しにわたって、この違いが積み重なって、AIエージェントに、遅いフィードバックループではなく、緻密なフィードバックループを与えるのがまさにそれです。

AI支援開発の基盤
これらの要素(スクリプト可能なCLI、プログラマブルなEditor、ライブREPL)を合わせると、利便性以上のものになります。この投稿の冒頭のデモを可能にしているのは彼らであり、UnityをAIエージェントが実際に作業できる環境に変えているのです。
AIコーディングアシスタントはコードやコンテンツを書くのが得意です。歴史的には、プロジェクトを運営し、何が壊れたかを見て、もう一度やってみるという、その周りのすべてのことに苦労してきました。アシスタントはゲームプレイススクリプトを生成することはできますが、動作を確認するテストを実行することはできません。Unity CLIとパイプラインレイヤーは、このギャップを埋めます。
2つのプロパティが違いを生みます。まず、CLIはエージェントが理解できる言語を話します。構造化されたJSONと予測可能な終了コードコントラクトは、モデルがスクレイピングされたコンソールテキストの代わりにクリーンで解析可能な結果を得ることを意味します。CIで信頼性を高めるのと同じ性質により、エージェントが呼び出すツールとして信頼性が高まります。
次に、パイプラインパッケージはエディタを自己記述的なものにします。引数なしでUnityコマンドを実行し、接続されたエディタが公開する操作を報告します。エージェントは、ハードコードされたリストに頼るのではなく、ランタイムで何ができるかを検出します。また、コマンドは単純な属性で登録されているため、チームはプロジェクト固有の操作をエージェント呼び出し可能なツールとして公開できます。つまり、登録された各コマンドは、エージェントがすでに呼び出し方法を認識している種類のツールに自然にマッピングされます。
これらを組み合わせると、本当のフィードバックループが得られます。アシスタントは、プロジェクトを開いて変更を適用し、テストを実行し、再生モードに入って動作を確認し、結果を読み取り、次に何をするかを決定できます。人間が出力を前後に中継する必要はありません。提案するアシスタントから検証できるアシスタントへのシフトです。また、新しいエージェント標準にも自然に適合します。登録された各コマンドは、関数呼び出しモデルやMCPサーバが呼び出し方法をすでに知っている種類のツールにマップされます。
また、エージェントができることの決まったリストはありません。evalはプロジェクトが呼び出せるAPIなら何でも届くため、エージェントの機能表面はUnityと同じで、レンダリング、物理演算、アニメーション、アセットデータベース、Editor自体に加え、独自のコードで追加されるすべてのものが含まれます。そのリーチは10年以上にわたるAPI作業の結果であり、エージェントは追加インテグレーションなしでそれを得ることができます。

今まさにその序盤です 原始人は既に今日ここにいますUnityのAI支援ツールを構築する場合、パイプラインパッケージはどこから開始かです。
UnityのAI製品との関連性
In-Editorアシスタントスイートなど、UnityのAI製品を使用する場合、その下のレイヤーです。UnityのAIは、プロジェクトを推論し、何をすべきかを決定する部分です。CLIとパイプラインパッケージは、高速、ローカル、トークンゲートといった決定を実行する実行サーフェスです。Unity独自のMCPサーバーを介したツーリングルーティング、サードパーティのアシスタント、自分で作成したスクリプトなど、どのエージェントにも同じサーフェスが開かれます。UnityのAIは、そのコンシューマーの1つであり、AIに代わるものではありません。
現在利用可能
Unity CLIはこちら。インストールし、Unity --ヘルプを実行して、次のビルドスクリプトやCIジョブに折りたたむか、エージェントで自動化します。ドキュメントに完全なコマンドリファレンスがあります。ビルドの内容を教えてください。フィードバックが次の方向性を形作ります。
セーフハーバーステートメント:このロードマップは、Unityの製品スイートの開発に対する現在の意図を表しています。情報提供のみを目的としており、特定の特徴や機能の提供をお約束するものではありません。提供される情報は随時変更される可能性があり、Unityは将来のリリースのコンテンツ、時期、性質について保証するものではありません。ユーザーは、ビジネス上重要な意思決定をこのロードマップに依存すべきではありません。