Communitygithub.com

Unity Agentic Tools

ライブのUnityエディタと連携し、シーン、プレハブ、アセットを最小限のトークン使用量で読み取り・編集するためのCLIツールです。

Unity Agentic Tools とは?

Unity Agentic Toolsは、AIエージェント(Claude Code、Coder、Cursorなど)がUnityエディタと直接対話し、シーン、プレハブ、アセットの読み取り・編集を効率的に行うためのCLIツールです。このスキルは、Unityのシリアライズファイル(.unity、.prefabなど)を手動で変更せずに、専用のCLIコマンドを介して操作することを推奨します。主な機能として、コマンド一覧表示(list)、コマンド実行(run)、リアルタイムイベントのストリーミング(stream)、ブリッジパッケージのインストール・アンインストール・クリーンアップ、ステータス確認(status)などがあります。特に、独自のプロジェクトコマンドをC#の属性[AgenticCommand]で簡単に公開できる点が特徴で、ユーザーは最小限のトークン消費でUnityエディタの操作を自動化できます。

対応~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add taconotsandwich/unity-agentic-tools

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Unity Agentic Tools は何をしますか?

このスキルは、Unity Agentic Tools CLIのセットアップ、コマンド発見、コマンド実行、ライブエディタブリッジワークフロー、および高レベルなプロジェクト自動化に使用します。

重要: Unityの操作にはCLIコマンドランナーを使用してください。ユーザーが明示的に生ファイルの作業を要求しない限り、Unityのシリアライズファイル(.unity、.prefab、.asset、.mat、.anim、.controller、.meta、ProjectSettings/)を手動で変更しないでください。

コマンド一覧

コマンド説明
list [query]組み込みエイリアス、属性付きプロジェクトコマンド、オプションで生の静的APIを発見します。--briefで引数詳細を省略、--rawで生の静的APIを追加表示
run <target> [args...]Unityブリッジ経由でコマンドエイリアスまたは生のpublic static C#メソッド/プロパティを実行
stream [topic]WebSocket経由でリアルタイムのブリッジイベントを監視
installUnityブリッジパッケージをインストール
uninstallUnityブリッジパッケージをアンインストール
cleanup古いブリッジ状態や再構築可能な.unity-agenticキャッシュを削除
statusコマンドランナーとブリッジの到達可能性、およびエディタが何を処理しているかを示すreadinessブロックを確認

コマンドはデフォルトでコンパクトな1行JSONを出力します。整形出力には--prettyを指定してください。発見にはlist <query> --briefを推奨します。

デフォルトでは、installはGitHubパッケージURLを書き込みます。ローカルブリッジパッケージ開発にはinstall --local [path]を使用してください。既存のfile:依存関係はinstall --remoteが指定されない限り保持されます。

デフォルトルート

  1. unity-agentic-tools status -p <project>
  2. unity-agentic-tools list <query> --brief -p <project>
  3. query.*、scene.hierarchy、ui.snapshot、またはスクリーンショットで現在の状態を確認
  4. unity-agentic-tools run <target> ... -p <project>
  5. 対応するクエリ、スナップショット、スクリーンショット、テスト、またはコンソールストリームで検証

例

unity-agentic-tools list scene --brief -p <project>
unity-agentic-tools run project.refresh -p <project>
unity-agentic-tools run query.scene Assets/Scenes/Main.unity -p <project>
unity-agentic-tools run create.gameobject Assets/Scenes/Main.unity EnemyRoot Gameplay -p <project>
unity-agentic-tools run update.transform Assets/Scenes/Main.unity Player 1,2,3 0,90,0 1,1,1 -p <project>
unity-agentic-tools stream console --type Error -p <project>
unity-agentic-tools cleanup --cache -p <project>

構造化された引数はシングルクォートで囲んで位置指定で渡します。CLIが外側のJSON配列自体をエンコードするため、エスケープは不要です。-で始まる引数には--args '<json array>'を使用してください。詳細はreference/troubleshooting.mdの「JSON Args」を参照。

unity-agentic-tools run update.batch Assets/Scenes/Main.unity '[{"gameObjectPath":"Player","propertyPath":"m_Name","value":"Hero"}]' -p <project>

エイリアスや[AgenticCommand]ラッパーがない場合、生のpublic static APIを直接呼び出すこともできます。

unity-agentic-tools run UnityEditor.AssetDatabase.Refresh -p <project>
unity-agentic-tools run UnityEditor.EditorApplication.ExecuteMenuItem "File/Save" -p <project>

プロジェクトコマンド

Unityの操作ごとに新しいCLIコマンドを追加しないでください。プロジェクト固有の振る舞いは、Unity Editor C#のpublic staticメソッド/プロパティに[AgenticCommand]属性を追加して公開します。

using UnityAgenticTools.Commands;

public static class BuildCommands
{
    [AgenticCommand("build.addressables", "Addressablesコンテンツをビルドします。")]
    public static object BuildAddressables(string profile)
    {
        return new { success = true, profile };
    }
}

その後、以下のように使用します:

unity-agentic-tools list build --brief -p <project>
unity-agentic-tools run build.addressables Production -p <project>

参考資料

  • reference/live-editor-workflows.md: ライブエディタのセットアップ、変更、UI、バッチワークフロー
  • reference/command-reference.md: 引数ヒント(<必須> [オプション])付きの生成エイリアスリファレンス
  • reference/troubleshooting.md: ブリッジ、タイムアウト、参照、JSON引数、検証

トラブルシューティング

詳細はreference/troubleshooting.mdにあります。クイックポイント:

  • ブリッジに接続できない:「ブリッジに到達できない」を参照(インストール、Unityを開く、コンパイルを待つ、ステータス確認、クリーンアップ)。reachable: trueでis_stable: falseは、ビジー状態であって故障ではありません。
  • 長時間ビルドがタイムアウトする:runのデフォルトは60秒。「長時間実行コマンド」を参照(--timeout 1200000、--no-wait)。
  • play.enter直後にプレイモードが正しく見えない:応答は要求された状態ではなく現在の状態を報告します。play.stateをポーリングしてください。詳細はreference/live-editor-workflows.mdの「プレイモード遷移」を参照。
  • 遷移中の読み取りが遅い:想定内です。読み取りは最大30秒間ドメインリロードを待機してから失敗します。「長時間実行コマンド」の「ドメインリロード」を参照。
  • 古い@hN/@uN参照:scene.hierarchyまたはui.snapshotを再実行してください。「古い参照」を参照。
  • コンソールログが必要:unity-agentic-tools stream console --duration 5000 -p <project>。
  • 生のAPIが必要:unity-agentic-tools list <type-or-namespace> --raw -p <project>。

関連スキル