UnityパイプラインパッケージとUnity CLIには、インストールガイドとウォークスルー

重要なポイント
- UnityパイプラインパッケージはUnityエディター内で実行され、HTTPとJSON APIを通じてコマンドを公開します。
- Unity CLI は、ターミナル、エージェント、およびオートメーションスクリプトでそれらのコマンドを実行できるスタンドアロンクライアントです。
- ビルトインおよびカスタムコマンドは、プロジェクト設定、再コンパイル、テスト、ランタイム制御などの繰り返し可能なワークフローをサポート。
- 同じコマンド契約でUnity CLI、エージェントワークフロー、カスタムインターフェイスを強化できます。
概要
Unity CLIは無料でベータ版です。Unityパイプラインパッケージと組み合わせることで、端末からエディターをCI、スクリプト、AIエージェント用にドライブできます。
Unityパイプラインパッケージは、Unityエディター内に軽量サーバーを追加し、標準のウェブプロトコルを介して端末や他のツールと直接通信できるようにします。ステータスチェック、コンパイル、テスト実行などのコマンドを外部からトリガーできます。これらの操作は非同期でマネージされるため、スクリプト変更後にエディタがリロードしてもアクティブなままになります。この設定により、自動化に一貫性があり、予測可能で、スクリプト作成が容易になります。

コンポーネント
- Unity CLI:Editorとは別にインストールされるスタンドアロンバイナリで、Unity CLIは実行中のEditorに接続し、端末からドライブします。パイプラインパッケージにはUnity 6.0以降が必要です。
- Unityパイプラインパッケージ:これはCLI経由でプロジェクト(com.Unity.パイプライン)にインストールされますパッケージはエディタ内で実行され、エディタの読み込み時にローカルサーバーを自動起動します。
- コマンド:各コマンドはプロジェクト内の関数で、Unityが自動的に登録するようにタグ付けされています。ビルトインコマンドは、再生モード、ステータス、再コンパイル、テストの実行をカバーし、独自のコマンドを追加するオプションもあります。
- 評価:これにより、ライブUnityインスタンス(エディターまたは実行中のビルド)内でC#が直接実行され、単発のアクションが実行されます。任意のC#を実行し、セキュリティトークンによってゲートされます。リモートコード実行と同様に扱い、ローカル開発に保持します。

建築設計
- クライアント:端末、エージェント、CI/CD設定、カスタムUIなどの呼び出し元
- Unity CLI:コマンドをAPI呼び出しに変換する主要なクライアント。カスタムUIでプロトコルを直接話すことも可能
- プロトコル:HTTP + JSONと、クライアントとUnityの間のコントラクト
- HTTPリクエストを出せるクライアントであれば、言語を問わずUnityを動かすことができます。デフォルトでは、サーバーはローカルホストにバインドされるため、クライアントはエディタと同じマシン上で実行されます。リモート呼び出し元は、どのようなネットワークパスを公開しても、そのマシンに到達します。
- Unityパイプラインパッケージ:プロジェクトにインストールされ、エディタで自動起動
- パイプラインパッケージは、エディタサーバー(再生モード、ステータス、再コンパイル、テストの実行、プロジェクト設定)とランタイムサーバー(ランタイムパイプラインマネージャーによる実行中のビルドでのライブ編集)の2つのサーバーをホストします。
設定
ステップ1:Unity CLIのインストール
Unity CLIはスタンドアロンのバイナリ(試験的)です。スクリプトでインストールするか、Package Manager経由でインストールし、確認します。完全な手順については、Unity CLIドキュメントを参照してください。
# macOS / Linux — install script
curl -fsSL https://public-cdn.cloud.unity3d.com/hub/prod/cli/install.sh | UNITY_CLI_CHANNEL=beta bash
# macOS / Linux — Homebrew (keeps it current)
brew install --cask unity-cli
# Windows — PowerShell install script
$env:UNITY_CLI_CHANNEL='beta'; irm https://public-cdn.cloud.unity3d.com/hub/prod/cli/install.ps1 | iex
unity --version # verify it's on your PATHステップ2:サインイン
エディタを制御するには、認証されたセッションが必要です。
unity auth login # opens a browser sign-in flow
unity auth status # confirm you're signed inステップ3:Unityパイプラインパッケージをプロジェクトに追加する
Unityパイプラインパッケージはエディター内で実行され、Unity CLIに接続します。端末からインストールする場合は、インストール先のUnityプロジェクトのルートにいることを確認してください。Unityパイプラインインストールを実行します。デフォルトでは、カレントディレクトリまたは実行中のエディタを対象とします。Package Managerからcom.Unity.パイプラインを追加することもできます。Unityパイプラインパッケージのドキュメントを参照してください。
unity pipeline installインストールすると、自動的にサーバーが起動します。新しいパイプラインメニューを確認して確認します。
ステップ 4:接続してコマンドをリスト
パッケージをインストールしたら、実行中のエディタに接続し、スクリプト可能なものをリスト:
unity command # list this project's commandsリストには、組み込みのコマンド(再生モード、ステータス、再コンパイル、テストの実行)に加えて、任意のカスタムコマンドが含まれています。特別な設定なしで、あらゆるエージェントで動作します。
Editorを端末からドライブする
再生モードに入り、テストを実行し、ビルドゲットをリスト表示したり、スクリーンショットを掴んだりします。
unity command editor_play
unity command run_tests
unity command list_build_targets
unity command screenshotランは決定論的であり、上記はごくわずかなスライスです。Unityリストには、ビルトインアニメーションナビメッシュます。ナビメッシュアニメーション
カスタムコマンド
カスタムコマンドは、コマンドラインから一連のアクションを1つの呼び出しに連鎖させます。コマンドはプロジェクト内のタグ付き関数です。例:
- テストの実行+通知:スイートを実行し、結果を1回のコールでチームに投稿します。
- 未使用資産のレポート:プロジェクトをスキャンし、参照のないアセットをリストします。ビルド前に削除します。
記述されたコマンドは決定論的で再現性があります。同じコール、同じ結果です。これもエージェントへの受け渡しをわかりやすくします。
ランタイム制御
ランタイムサーバーが実行中のビルドを実行します。空のゲームオブジェクトを追加し、ランタイムパイプラインマネージャーコンポーネントを追加し、ビルドで「有効にする」にチェックを入れて有効にします。ビルドが実行されている状態で、端末から
- 遅い、一時停止、再起動時間。
- オンザフライで値を変更し、ランタイムでゲームオブジェクトのTransformをスケールまたは移動します。
- ランタイムでアセットとエフェクトをスワップ。
繰り返しアクションを行う場合は、ゲーム内に同梱されるランタイムコマンドを記述します(ゲームプレイ値を微調整、ゲームモードをオーバーライド)。エージェントによって決定論的、反復可能、およびコール可能です。
エージェントと評価
CLI またはその MCP モードから、すべてのコマンド(ビルトインコマンド、カスタムコマンド、eval)を任意のエージェントが使用できます。エージェントには2つの歯車があります。
- 反復可能なステップのための決定論的な名前付きコマンド
- コマンドがまだ存在しない場合の単発のC#に対する評価
ユースケースとしては、エージェントが eval を使って何かをビルドまたは変更し、確定コマンドを実行してそれを実行し、スクリーンショットを撮り、プロンプトに対して画像をチェックし、一致するまで繰り返すことが考えられます。eval はトークンゲートされた任意の C#なので、エージェントが触れる可能性のある範囲をスコープとします。
セキュリティ
Unity CLIとパイプラインパッケージは、同梱ゲーム用ではなくローカル開発用にビルドされています。デフォルトでは、すべてがマシン上に残ります。開発中のみ実行され、ライブコード(評価版)の実行はプロジェクトごとのキーによってゲートされます。そのため、エージェントがこれなしでエディターに対して任意のC#を実行することはできません。CLIをAIエージェントに渡すのは、アシスタントがコンピュータにアクセスするのと似ています。アシスタントは、できることは何でも実行できるので、何に触れるかを決め、evalコマンドはローカル作業に残しておきます。
その他のリソース