AIゲーム制作ラボ
Unity×AI8分で読めます

AIにUnityのテスト・動作確認・ビルドまで回させる手順

Unity CLI の run_tests / editor_play / capture_game_view / build を使って、人が画面を触らずにテストと動作確認とWebGLビルドを回した手順を、実際のコマンドと所要時間つきで残します。

Libra

公開 2026年9月16日

この記事の要点4 points

  1. AI に「動くまで」やらせるには、再コンパイル → テスト → Play 確認 → ビルドの型を指示に入れる
  2. PlayMode テストは非同期。 --async_tests true で走らせ、Temp/pipeline_test_status.json を読む。
  3. Play モードでは eval からゲームの関数を直接呼べる。 状態を読めば、画面を見なくても仕様どおりか確かめられる。
  4. 画面のキャプチャは --source screen を付けないと UI が写らない。 保存先はプロジェクトの中だけ。
目次6
検証した環境最終確認 2026年9月16日
  • Windows 11
  • Unity 6.6(6000.6.0f1)
  • Unity CLI 1.0.0-beta.9
  • com.unity.pipeline 0.7.0-exp.1
  • Claude Code(Opus 5)

書いてあるのは、この環境で実際に試した結果です。ツールの仕様や料金は変わるので、重要な判断の前には公式の情報も確認してください。

AI にコードを書かせるだけなら簡単です。難しいのは、書いたものが本当に動くかを AI 自身に確かめさせるところでした。

Unity CLI を使うと、ここまで AI が自分で回せます。

  1. STEP 01

    書き換えて再コンパイル

    エラーの文言を読んで直す

  2. STEP 02

    テストを流す

    EditMode / PlayMode

  3. STEP 03

    Play モードで動かす

    状態を読み、画面を保存

  4. STEP 04

    WebGL ビルド

    サイズとエラーを受け取る

人が画面を触ったのは、エディター初回起動の利用規約の同意だけでした。

以下、実際に使ったコマンドと、そのとき返ってきた内容を残します。

1. コードを書き換えたら、まず反映させる

外部のエディター(AI)でファイルを書いただけでは、Unity は気づかないことがあります。確実なのはこの順番でした。

unity command eval 'UnityEditor.AssetDatabase.Refresh(); return "ok";'
unity command recompile
unity command recompile_status

recompile_statusidle triggered compiling completed up_to_date のいずれかを返します。エラーがあるときは、こう返ってきます。

unity command recompile_statusERROR
{"status":"completed","failed":true,"errors":["…error CS1736…"]}

エラーの文言がそのまま返るので、AI はこれを読んで自分で直せます。 私の1本目では、テストの既定引数にプロパティを使っていて CS1736 が出ましたが、そのまま修正まで進みました。

2. テストを流す(PlayMode は非同期)

unity command run_tests --mode EditMode

EditMode はそのまま結果が返ります(私の環境では44件で数秒)。問題は PlayMode です。待たずに「0件」で返ってきます。

そのまま実行(0件で返る)

run_tests --mode PlayMode
→ {"Summary":{"Total":0,...}}

非同期で実行して状態ファイルを読む

run_tests --mode PlayMode --async_tests true
→ {"result":"running",
 "StatusPath":"Temp/pipeline_test_status.json"}

あとは Temp/pipeline_test_status.json を、"status": "completed" になるまで読みます。整形済みの JSON なので、コロンのあとに空白が入ります。空白なしの文字列で待つと永遠に終わりません(実際にやりました)。

3. Play モードで実際に動かす

ここが一番おもしろいところです。AI はゲームを「遊べません」が、ゲームの関数を直接呼んで状態を読むことはできます

unity command editor_play
# ゲームを開始してボールを発射する
unity command eval 'var b = UnityEngine.Object.FindFirstObjectByType<GameBootstrap>(); b.StartNewGame(); b.LaunchBall(); return "ok";'
# 3秒後に状態を読む
unity command eval 'var s = …; return $"score={s.Score} lives={s.Lives} bricks={s.RemainingBricks}";'
unity command editor_stop

実際に返ってきたのはこれです。

unity command eval(発射から3秒後)OK
score=10 lives=2 bricks=39

発射から3秒、パドルを操作しなければ、ブロックを1個壊してボールが落ちる。仕様どおりに動いていることが、画面を見なくても分かりました。

画面も保存できる

unity command capture_game_view --save_path "Assets/Temp/title.png" --source screen

4. ビルドまで回す

# まず検証だけ
unity command build --target WebGL --outputPath Builds/WebGL --dry_run true
→ {"status":"dry_run","valid":true,"validationErrors":[]}

# ビルド対象の切り替え(再インポートが走るので confirm が要る)
unity command switch_build_target --target WebGL --confirm true
unity command switch_build_target_status

# 本番
unity command build --target WebGL --outputPath Builds/WebGL --confirm true
unity command build_status

build は即座に {"status":"queued","buildId":…} を返し、build_status で追いかける形です。完了するとビルドレポートが JSON でまとめて返ります

私の環境での実測はこうでした(初回)。

45秒

ビルド対象の切り替え

再コンパイル完了まで110秒

8:33

WebGL ビルド

初回

10.1MB

出力の合計

のちに 7.37MB まで削減

0

エラー

警告は1件(下)

サイズはその後、設定とパッケージの整理で 27.3% 減らしました(Webビルドの軽量化)。

警告の中身は「Pipeline の設定アセットが無いので、ビルドしたゲームでは Pipeline が無効になる」というものでした。Pipeline はエディター専用なので、これで正常です。

5. ビルド後に git の差分が出る

WebGL ビルドのあと、URP の設定2ファイルと ProjectSettings.asset がエディターによって書き換えられていました。シェーダーの事前絞り込みの記録などです。ビルドのたびに出る差分なので、知らないと毎回驚きます。

まとめ:AI に渡す手順の型

  1. 1

    ファイルを書く

  2. 2

    反映させてコンパイル

    AssetDatabase.Refresh()recompilerecompile_status(エラーがあれば直す)
  3. 3

    EditMode テスト

    run_tests --mode EditMode
  4. 4

    PlayMode テスト

    run_tests --mode PlayMode --async_tests true → 状態ファイルを読む
  5. 5

    Play モードで確かめる

    editor_playeval で操作と状態の確認 → capture_game_view --source screeneditor_stop
  6. 6

    ビルド

    switch_build_target --confirm truebuild --confirm truebuild_status

この型を指示に入れておくと、AI は「書いて終わり」ではなく「動くまで」を自分で回せます。


ここで踏んだ問題をまとめて読むならWindowsの落とし穴14個、導入の手順はUnityをAIに触らせる5つの方法にあります。

FAQ

よくある質問

AI にゲームの動作確認までさせられますか?

できます。Play モードに入れてから eval でゲームの関数を直接呼び、スコアやライフなどの状態を読み取れば、人が操作しなくても仕様どおりかを確認できます。画面のキャプチャも保存できます。

PlayMode テストの結果が空で返ってきます。

PlayMode は非同期実行です。--async_tests true を付けて実行し、返ってきた StatusPath のファイルを読んでください。完了判定の文字列は空白を含む整形済み JSON です。

WebGL のビルドはどれくらいかかりますか?

この環境では、ビルド対象の切り替えに45秒(再コンパイル込みで110秒)、WebGL ビルド本体に8分33秒かかりました。初回は長いので、AI に任せるならタイムアウトを長めにしてください。

SOURCES

出典

  1. 01Unity CLI の使い方(公式ドキュメント)Unity
  2. 02Replace MCP server with Unity CLI(unity command と eval の説明)Unity
  3. 03Unity Pipeline パッケージUnity

この記事は役に立ちましたか?

NEXT