Open6

Unity Test Runner をバトルシミュレーション等の用途に利用できるか

なぴぃなぴぃ

Test Runner は仕様通り動いてるかの確認に使われる事が多いと思いますが、バトルシミュレーション等の用途に利用できるか試してみたい。

※ Unity Test Runner 初心者の備忘録です。

なぴぃなぴぃ

現状の用途だといつものやり方(デバッグマネージャーでStart処理を切り替えてテストしたい部分のロジックをプレイモードでコンソールログに出す)で問題ないという結果になりました。

▍プレイモード + Debug.Log

メリット

  • ゲームのフローをそのまま利用して確認できる。
  • Enter Play Modeオプション + Hot Reloadアセットでコードの変更が即時反映され爆速で検証を回せる。

デメリット

  • デバッグマネージャー等を作成して、確認したい部分から実行するようなコードを書く必要がある。
  • 非同期処理で演出の時間がかかってしまうので、演出を切ってロジックの結果だけすぐ受け取れるように書いておく必要がある。

▍Test Runner

メリット

  • 書きっぱなしにしても元のコードを汚さない。
  • 切り替えたりせず複数一気にテストできる。
  • 縦長の領域でも使えるので内容次第ではDebugLogより見やすい。
  • プレイモードと違って終了する必要がない。

デメリット

  • 別の場所にテスト用メソッドを新たに書く必要がある。
  • Enter Play Modeオプションでリロードを切っても毎度必ずコンパイルが走ってしまう。
なぴぃなぴぃ

Test Runner は Enter Play Modeオプション + Hot Reload のコンボが利用できないのが痛い。毎度コンパイルが走ってしまうのはちょこちょこ数値を変えて回していくのに向いてないかもしれません。

反面、複数一気に表示できるので、複数のケースを一気に確認したいケースには役立ちそうです。

なぴぃなぴぃ

と思ったけど、複数ケースのログを出すようにデバッグマネージャーに書けばいい気もするし、おとなしくTest Runner は仕様の確認用途に使った方がいい気がしてきました。

なにか他にも用途が見出せそうな気がしなくもないですが。

なぴぃなぴぃ

もしや TestRunner の PlayMode なら Enter Play Modeオプション + Hot Reload の恩恵を受けられる?

なぴぃなぴぃ

だめでした。TestRunner の PlayMode は EnterPlaymodeOptionの影響を受けないみたいです。必ずリロードが走っちゃいます。