【Unity】Assertを活用してデバッグ効率を上げよう

2019/07/01DEVELOP, GAME, Unity

開発も終盤になってくるとデバッグが始まり不具合報告が相次ぐと思います。
その際に事前にプログラムにAssertコードを仕込んでおくと何かと便利です。

Assertって何?

Assertは論理エラーを検知するための機能です。
これは、上手く使えばデバッグを助けてくれる、強力な道具です。

論理エラーって?

  • 絶対にそうであってはいけないもの。
  • 通信などの外部的要因に対しては使ってはいけません。
  • エラーが有りうる。のであればそれは論理エラーではありません。

void OnClick()
{
    GameObject go = GameObject.Find("WRYYYYYYYYYYY");
    Assert(go != null, "GameObject is NULL.");
}

チェック例

  • NULLであってはいけないとか
  • リストの数が0なはずはないとか
  • そのほかゲーム固有のありえない組み合わせを検知する 等

データや仕様の不具合を防ぎ、曖昧に動いているプログラムを本来あるべき姿 に改善出来ます

そして、Assertを事前に埋め込んでさえいれば、動作確認としてエージング(繰り返しテスト)を行う場合など自動で誤ったデータ・コードの場所と原因を検出してくれる様になり大変便利です。

何より時間は有限

エージングの様な作業に人の手は不要です。
得意な機械に任せるべきだと思います。

また、繰り返しテストを行うと往復した場合に発生する不具合を見つけることが出来ます。
例えばメモリリークだったり、断片化だったり。

結論

開発しやすい環境じゃないと、心にも余裕が出来ない。
心に余裕がないと面白いものは生まれない。
出来る限り自動化しましょう。

Posted by kazupon