AI にゲームをテストさせる
シーンを変えた AI には、結果も確かめてほしい。nanora-unity-mcp には、そのための Playwright 風のツールがあります。どれも #ScoreText や .Enemy[tag=Boss] のような U-Selector で対象を指します。
| 手順 | ツール |
|---|---|
| Play モードに入る・出る | manage_playmode |
| オブジェクトが現れる・見える・押せるまで待つ | wait_for_selector |
| キーを押す・クリック・ドラッグ・UI の要素を押す | simulate_input |
| 文字・表示・色・値などを判定する | assert_ui_state |
| 結果を見る | capture_screenshot |
キー入力のシミュレートには Input System パッケージが要ります(旧 Input Manager だけだとキーは届きません)。Input System 1.4 以降なら、Unity が裏にあってもキーが届きます。
シナリオを 1 回で
Section titled “シナリオを 1 回で”run_e2e_test は手順の並びを Play モードで実行し、手順ごとの合否を返します。手順の種類は wait_for_selector・simulate_input・assert・screenshot・wait・execute_csharp。Play モードへの出入りは自動で、失敗した手順ではスクリーンショットを撮ります。
{ "name": "run_e2e_test", "arguments": { "name": "start and score", "steps": [ { "action": "wait_for_selector", "selector": "#StartButton" }, { "action": "simulate_input", "input_action": "ui_click", "selector": "#StartButton" }, { "action": "simulate_input", "input_action": "key_tap", "key": "Space" }, { "action": "wait", "ms": 500 }, { "action": "assert", "selector": "#ScoreText", "property": "text", "comparison": "not_equals", "expected": "0" }, { "action": "screenshot", "label": "after-shot" } ] }}オブジェクトの名前は例です。自分のシーンの名前に置き換えてください。
1 回の確認のその先
Section titled “1 回の確認のその先”visual_regression_test— スクリーンショットを保存した基準と比べるperformance_budget_test— FPS・描画数・メモリを予算と比べるrun_testsとget_test_results— Unity Test Framework のテストを実行するgenerate_test_report— 結果をレポートにまとめる
スクリーンショットに UI が写らない
Section titled “スクリーンショットに UI が写らない”game ビューの撮影はカメラの描画だけを撮るので、Screen Space - Overlay の Canvas は写りません。AI に見せたい UI は Screen Space - Camera にしてください。