20 CLI commands in 10 min

Oct 8, 2026|10 Min
Thomas Krogh-Jacobsen
Thomas Krogh-Jacobsen - Unity Technologies
Senior Technical Content Marketing Manager

このウェブページは、お客様の便宜のために機械翻訳されたものです。翻訳されたコンテンツの正確性や信頼性は保証いたしかねます。翻訳されたコンテンツの正確性について疑問をお持ちの場合は、ウェブページの公式な英語版をご覧ください。

前回の記事では、Unity CLIとパイプラインパッケージの始め方について取り上げました。どちらも試したことがない場合や、単に復習したい場合は、こちらをご覧ください。

この記事では、開発者ツールのベルトに追加できるいくつかのコマンドを共有したいと思います。140以上のコマンドがあり、更新のたびにさらに追加されるため、すべてを覚える必要はありません。しかし、いくつかの必須コマンドを記憶し、利用可能なオプションを知っておくことで、AI開発者のワークフローをより良く活用できるようになります。ざっと見て、新しいものを選び、知っているものはスキップしてください。始めましょう。

詳細に入る前に簡単な免責事項ですが、新機能や改善が頻繁に追加されています。執筆時点では、Unity CLIの1.0.0-beta.10バージョンと、com.unity.pipelineパッケージの0.6.0-exp.1、およびUnity 6000.6.0f1を使用しています。そのため、将来的には変更される可能性があり、問題が発生した場合はUnity CLIのドキュメントを確認してください:https://docs.unity.com/en-us/unity-cli/use-unity-cli。

1.コマンドには--ヘルプを使用してください

おそらくすでにUnity --ヘルプコマンドを知っていて使っているでしょう。しかし、--help はネストされたコマンドのどのレベルにも付加して即座にドキュメントを取得できます。迷ったときは、単に終了に--ヘルプを追加してください。

いくつか例を挙げます。

おそらくすでにUnity --ヘルプコマンドを知っていて使っているでしょう。しかし、--help はネストされたコマンドのどのレベルにも付加して即座にドキュメントを取得できます。迷ったときは、単に終了に--ヘルプを追加してください。

いくつか例を挙げます。
全エディタを取得するためのドキュメント

unity editors --help

特定のモジュールをインストールするためのパラメーターを取得

unity install-modules --help

認証コマンドのヘルプ

unity auth --help

ログインコマンドに関するヘルプ

unity auth login --help

すべてのヘルプ画面は、コマンドが何をするのか、利用可能なオプション、および期待される引数を即座に出力します。

--help フラグは、エージェントがツールを探索するためにも使用されるため、CLIで新しいセッションを開始するときは、エージェントに --help を実行するように依頼して、接続されていることを確認できます。

2.コマンドをリストしてください

ドキュメントや利用可能な多くのオプションを把握することについてですが、引数なしで実行するとこのコマンドもあります。

Unityコマンド

このコマンドは、パイプラインパッケージのローカルサーバー経由で実行中のUnityエディターに接続し、エディターのAPIがシェルおよびエージェントがUnity内で動作するために利用できる、登録されているすべてのコマンドのリストを表示します。

コマンドを1つの使い方で例として示すとすれば、
unity command editor_play


接続されたエディタを再生モード(再生ボタンをクリックするCLI相当)に入力して、エディタUIに触れることなくスクリプトが実行されるようにします。同様の対応物はです。
unity command editor_stop


エージェントがCLIで何ができるかを認識していることを確認するため(そして、時々ブラックボックスのように感じられるため)、新しいプロンプトを開始するときに使えるヒントは、より探求的になり、ClaudeやCodexなどにCLIで何ができるかというコンテキストを与えることです。次のようなコマンドを実行することでそれができます:
bashで「unity command」を実行し、それが何ができるかを教えてください。そして、簡単な「eval」コマンドをテストしてください。

3.状態の確認と複数のインスタンスの実行

Unity CLIが実行されているか確認するには、単に以下のコマンドを使用できます。
Unity 状態
次のようなものを返すはずです:
Unity エディター(ポート 7800):readyProject: /Users/thomaskr/Github/UnityProjects/MyAwesomeProjectバージョン:6000.6.0d1PID: 85009
最初の行の隣にreadyステートが表示されている場合、エディタがライブで到達可能であることを意味します。エディタがどのポート上にあるか、プロジェクトのパス、エディタのバージョン、およびプロセス識別子(PID)も確認します。

unity status は接続されているすべてのエディタをすでにリストアップしているため、「どれが実行中か?」という質問にそれ自体が答えています。どのプロジェクトにパイプラインパッケージがインストールされ、到達可能であるかを具体的に知るには、以下を使用します。
# パイプライン

Unity パイプライン リスト
CLIが認識している、Pipelineパッケージを実行しているすべてのUnityプロジェクトを示し、各プロジェクトをサーバーポートと現在の到達可能性とともに一覧表示します。

複数のエディタが上記の例のように実行されている場合、そのプロジェクトパスを指定して--project-path を渡すことで、1つをターゲットにできます。そうでない場合、CLIは現在のディレクトリを含むプロジェクトのエディタを選択します。

4.短縮フラグと長いフラグ

ほとんどのコマンドには、日々の端末ワークフローでの高速タイピングのために設計された一文字のショートカットもあります。そのため、unity --help を実行する代わりに、unity -h を使うこともでき、どちらも同じ回答が得られますが、キーボード入力が少なくて済みます。

unity --help # 長いフラグバージョン(可読性向上)

unity -h # 短いフラグバージョン(日常的により速い)

5.プロジェクトのサイズを確認してください

スペースを空けたい場合は、このコマンドがUnityプロジェクトのサイズを素早く特定するのにヘルプます。


1つのプロジェクトあたりのフォルダーごとのディスクフットプリントなので、どれだけ再生成可能か(ライブラリ/一時ファイル)を確認できます

Unityプロジェクトのサイズ

# 登録されているすべてのプロジェクトをサイズ順に要約

Unityプロジェクトのサイズ --all

6.出力形式をコントロールする

デフォルトでは、コマンドは人間が読めるテキストを返しますが、スクリプトが解析するためのクリーンなネストされたJSONを必要とする場合は、形式をJSONに変更できます。エージェントが直接、小さく平坦な結果を読み込み、プログラム的に解析する必要がない場合は、人間が読める形式にデフォルトで切り替え、応答に構造やサイズが生じ、そうでなければ正規表現による形式の推測が必要になる場合に、--format jsonに切り替える。


機械可読JSON

unity editors list --format json

人間フレンドリーな形式

unity editors list --format human

7.ダウンロードせずにプレビューモジュールをインストールする

ダウンロードをコミットし、ディスク容量を占める大きなモジュールを読み込む前に、--dry-runを使用できます。これにより、何もダウンロードすることなく、どのモジュールがインストールされ、それらの合計サイズがどのようになるかを正確に表示できます。

unity install-modules --module android ios --dry-run

ドライランを行うことで、プロジェクト全体がどのようなものに外観かの良い概要を把握できます。

8.コンパイルする前にビルドの設定を検査する

ビルドには--dry-runはありませんが、コンパイル料金を支払う前に形状を検証することはできます。 unity build は --target または --profile のいずれかを必要とし、いくつかのフラグはビルドが実行される前に終了するため、数分ではなく数秒で間違ったターゲットやビルドプロファイルの欠落を検出できます。

実行する前にビルドをテストしてください

unity build --list-targets

プロフィールをリスト表示

unity build --list-profiles

9.特定のエディタバージョンとすべてのモジュールを一度にインストールする

再現性が重要なCI環境では、ハブなしで正確なエディタバージョンをインストールできます。バージョンは位置引数であり、--cm は子モジュールを自動的に取り込み、名前付きプラットフォームモジュールは別の install-modules コマンドから取得されます。

# バージョンはフラグではなく位置指定です

unity install 6000.6.0f1

# 子モジュールを自動的に含める

unity install 6000.6.0f1 --cm

# プラットフォームモジュールを追加する(別コマンド、--dry-runをサポート)

unity install-modules --module android ios webgl

10.端末からのエディタのインストールとアップグレードプロセス

Hubを使用してインストールプロセスを管理するのではなく、基本的なunity installコマンドを使用してください。これにより、Hubを開かずにインストールできる利用可能なすべてのエディターバージョンのリストが表示されます。

# 対話型インストールガイド

Unityをインストール

新しいバージョンをインストールしたら、プロジェクトフォルダーのパスとアップグレード先のバージョンを指定してアップグレードコマンドを使用してプロジェクトをアップグレードできます。
# プロジェクトに合わせてプロジェクトパスとエディタのバージョンを置き換えてください

unity projects upgrade /Users/thomaskr/Github/UnityProjects/CLIDemo --to 6000.6.0f1

上記のスクリーンショットでは、いかに簡単なコマンドラインでアップグレードが行われたかをご覧いただけます。

11.端末からプロジェクトを作成する

CLIで数つのコマンドだけで新しいプロジェクトを作成できます。


デフォルトの対話型テンプレート

unity projects create "CLI demo"

標準モードを実行すると、プロセスを案内する対話するウィザードが表示されます。使用したいエディターバージョンを単に選択し、Unity Cloudにリンクし、作成時にテンプレートとエディターバージョンを選択することで、Hubで行うのと同様に新しいプロジェクトを簡単に設定できます。

しかし、ハブとは異なり、好みのオプションを定義するだけで、頻繁な設定ワークフローを自動化することもできます。ここでは、特定のエディタバージョン、テンプレート、およびプロジェクトパスを定義する例を示します。


テンプレート付き(3D、2D、VRなど - プレースホルダーを置き換えるだけ)

unity projects new "CLI demo" --editor-version 6000.6.0b9 --template com.unity.template.3d --path ~/MyProjects

12.スクリーンショットをキャプチャする

ワークフローでスクリーンショットをキャプチャする必要がある場合、3つの異なるコマンドが利用可能です。

シーンまたはゲームビューをPNGファイルにキャプチャし、パスを返します。Params: --view, --output, --width, --height

# ゲームビュー

# 注:スクリーンスペースオーバーレイUIはカメラの出力には含まれないため、黒が返されます

unity command screenshot --view game

# シーンビュー

Unity コマンドスクリーンショット ---シーン表示

特定の解像度とカメラでキャプチャし、base64をインラインで取得する

# 合成されたバックバッファを読み込むため、オーバーレイUIが含まれます。再生モードのみ。

unity command capture_game_view --width 1920 --height 1080 --camera "Main Camera" --save_path Screenshots/check.png

出力は次のような外観になります。

これは、画像がデータとして返ってくるため、エージェントが別途開く必要のあるパスではなく、すぐに推論できるため、Claude コード自身のベストプラクティスガイドにある「これを実装し、スクリーンショットを撮り、デザインと比較する」という検証ループに役立つからです。

13.変更履歴

Unity CLIおよびパイプラインパッケージに新しい機能が急速に追加されているため、私がよく使う便利なコマンドは、単に実行するだけで取得できる変更履歴です。

Unityの変更履歴

最近の変更点を要約し、外観すべき点や試してみるべき新しいコマンドの概要を素早く提供します。

14.Evalを使ってC#を実行する

Unityパイプラインパッケージがエディタ内で実行されている場合、CLIはeval commandを使用してエディタ内でC#スニペットをライブでコンパイルおよび実行できます。プロジェクトレベルでの再コンパイルもドメインのリロードもないため、待たされるのではなくミリ秒で実行されます。これを使用すると、自動化された設定スクリプトの実行、エディタ状態のクエリ、またはディスク上のC#スクリプトファイルの実行をunity command eval_file --file path/to/script.csで実行できます。

# エディタが現在再生モードである場合は true を返します

unity command eval --code "return UnityEditor.EditorApplication.isPlaying;"

コンソールウィンドウに単純な文字列をログ出力する

unity command eval --code 'Debug.Log("I was invoked in the terminal");'

15.テスト

Unityのテストツール、別名Unity Test Frameworkは、CLIから直接実行できます。

Unityはテストを2つのカテゴリに分割し、エージェントがそれらを繰り返し実行するようになるとその違いが非常に重要になります。

  • 編集モードテスト:再生を押さずに即座に実行。プレーンなロジック(数学、データ処理、非MonoBehaviourクラス)のテストに適しています。
  • PlayModeテスト:プレイヤーが体験するように、ゲームを短時間実際に実行してください。Unityが裏側でリロードする必要があるため、遅くなります。

おそらくEditModeテストから開始のが良いでしょう。それらはより速く、書きやすく、初期段階で必要なほとんどをカバーしています。Test FrameworkとUnity CLIの両方をインストールしたら、コマンドラインから呼び出すことができます。

# プロジェクトのEditModeテストを実行する

unity test --mode EditMode

サブセットにフィルターをかけ、JUnitレポートを作成する

unity test --mode EditMode --filter MyNamespace.MyTests --junit-output results.xml

# 最近の変更の影響を受けるテストのみ実行

unity test --affected

これはすべてのEditModeテストで実行されます。--junit-output results.xml を追加すると、何が合格し何が失敗したかについての構造化されたレポートも取得できます。それから、エージェントにテストを実行し、見つかったことを要約するように頼んでください。例えば、次のような形で:"EditModeのテストを実行し、失敗しているものだけを平易な英語で教えてください。"エージェントがコマンドを実行し、レポートを読み取り、報告するため、手動でのログスクロールは不要です。

16.クラウドを管理する

サインイン management は unity auth の下にありますが、unity cloud を使用して端末から Unity Cloud 組織とプロジェクトを管理できます。

# 利用可能なすべてのクラウドコマンドのリストを開きます

Unity Cloud

組織IDとアカウントを取得するには

Unity Cloudの状態

# アクティブな組織IDのみ、パイプに接続可能

unity cloud org current

17.医者に診てもらう

環境のトラブルシューティングや検証を行う際、認証、インストール、ログファイルを手動で監査する代わりに、unity doctor コマンドを使用できます。このコマンドは、利用可能なエディタ、プロキシ設定、最近のアクティビティログを含む、セットアップの包括的なヘルスチェックを単一の出力で実行します。初期設定中のCIマシンにおけるサイレントな設定エラーの診断に特に役立ちます。

# 設定を診断する

Unityドクター

# 完全なエラースタックトレースを追加

unity doctor --verbose

サイレントプロキシの誤設定は一般的なビルド失敗の原因であるため、ビルドを実行する前にエディタの健全性を確認することを検討できます。これをCIマシンで設定中に自動化するだけでよいです。

unity env コマンドも使用できます。それは、ダウンロードキャッシュを消去したり、user-settings.jsonを手動で検査したりする場合など、パスだけが必要な場合のunity doctorのサブセットです。

解決されたパス(インストールパス、キャッシュパス、設定パス)

Unity環境

18.カスタムコマンドの作成

[CliCommand]属性を使用すると、AIエージェントにカスタムスクリプトを提供するカスタムコマンドを簡単に記述できます。CLIコマンドを使用するには、標準の静的C#メソッドを用意し、それに[CliCommand]および[CliArg]属性を付与するだけです。

パイプラインパッケージは、コンパイル中にこれらの属性を自動的に検出するため、手動での設定ファイルや登録ファイルは不要です。引数なしでunity commandを実行すると、CLIは組み込みコマンドと並んで利用可能なすべてのカスタムコマンドを動的に一覧表示します。

注:[CliCommand] 属性により、コマンドがCLI経由で発見可能かつ呼び出し可能になります。パラメーター化された実行の場合、CLIスタイルのフラグを渡すのではなく、C#構文を使用してunity command evalを直接呼び出します。

簡単な「Hello ワールド」カスタムコマンドをアクションに外観てみましょう。

HelloWorldCommand.csという新しいC#スクリプトを作成してください。クラスとメソッドが静的であることを確認し、Unity.Pipeline.Commands 名前空間を含めてください。

using UnityEngine;

using Unity.Pipeline.Commands;

public static class HelloWorldCommand

{

[CliCommand("hello-cli", "A hello world test")]

public static void SayHello()

{

Debug.Log("皆さん、こんにちは!私はカスタムCLIコマンドです。

}

}

新しいコマンドを実行するには、端末を起動して以下を実行してください。

unity command hello-cli

実行すると、コマンドの結果が端末に表示され、Debug.Log の出力がエディタのコンソールウィンドウに表示されます。

カスタムコマンドの作成についてもっと知りたい場合は、今後の記事で取り上げます。

19.MCPサーバーを使用する

CLIを使用することが一般的に推奨されるワークフローですが、ツールーションが必要な場合やエージェントがシェルに苦労している場合は、Unity CLIをMCPサーバーとして動作させることもできます。

MCPは、エージェントに永続化された的な接続を通じてツール名、説明、構造化スキーマへの直接アクセスを提供することで、Rawのシェル実行と出力解析を回避し、インテグレーションを簡素化します。CLIはスクリプトや手動ワークフローに適していますが、MCPはUnityツールをAIワークフローにシームレスに組み込みます。どちらも同じエディター機能にリーチし、意味のあるパフォーマンスの違いはありません。

AIクライアントは通常、MCPサーバーを自動的に起動します。サーバーはスタンドアロンで動作しますが、エディタツールにはパイプラインパッケージを備えたアクティブなエディタが必要です。MCPを、何らかの理由でツールが機能しない場合の代替インターフェースと考えてください。ほとんどのユースケースでは、Unity CLIが最良のオプションとなります。

AIクライアントを設定してください:

# サポートされているエージェントを確認

unity mcp configure --list

Claude Codeにサーバーを追加する

unity mcp configure claude-code

# または、現在のプロジェクトのみにスコープされたカーソル

unity mcp configure cursor --local

設定変更を書き込まずにプレビューする

unity mcp configure vscode --dry-run

20.CLI用Unityエージェント

UnityはCLI用のエージェントスキルを搭載しています。これは、エージェントがどのコマンドが存在し、どのように呼び出すかを知るのに役立ちます。CLIでインストールできます:

# インストールせずに利用可能なスキルを出力する

Unityスキル

スキルを構成するファイルをリストアップしてください

unity skill show --list

# サポートされているクライアントとインストール状態を表示

unity skill install --list

AIクライアントにインストールしてください

unity skill install claude-code

最新バージョンへの更新

Unity スキルリフレッシュ

次に何をすればよいですか?

これがコマンドの簡単な概要になっていれば幸いです。言ったように、すべてを暗記する必要はありませんが、いくつかの基本的なコマンドを知っていると本当に役立ちます。次の記事では、Claude コードとUnityでの作業について詳しく外観ていきます。ゲームコーディングを楽しんで!