コンテンツへスキップ

【Unity】デバッグの方法をマスターしてエラーを解決できるようになろう

Unity でゲームを開発していて、(右図のような)エラーが発生したことはありませんか?エラーを解決するのはなかなか難しい作業ですよね。

そんな悩みも、デバッグの使い方をマスターすれば解決しますよ。

デバッグを使えばプログラムを好きなところで止めたり、変数の中身をみることができます。

unity-debug0

STEP1:エラー箇所を確認する

unity-debug1

エラーの情報は、Unity の「コンソール」ウィンドウで確認できます。エラーをクリックすると、下記のように詳細が表示されます。エラーの箇所は「CameraController.cs」ファイルの 29 行目となっています。この記事では、試しにこのエラーを解決していきたいと思います。

UnassignedReferenceException: The variable followingSlowTarget of CameraController has not been assigned.
You probably need to assign the followingSlowTarget variable of the CameraController script in the inspector.
CameraController.FixedUpdate () (at Assets/Scripts/CameraController.cs:29)

STEP2:該当のコードにブレークポイントを置き、「Unity にアタッチ」する

該当のコード(今回の例では、「CameraController.cs」ファイルの 29 行目)にブレークポイントを置きます。コードの左側にマウスカーソルをもっていくと白い丸が表示されると思います。そこでクリックをすると赤い丸に変わります。それがブレークポイントです。ブレークポイントを置いた位置でプログラムを止めることができます。

ブレークポイントを置いたら、ツールバーにある「Unity にアタッチ」をクリックします。これで準備は OK です。

unity-debug2

STEP3:ゲームを再生する

Unity の再生ボタンを押してゲームを始めます。

unity-debug3

STEP4:ブレークポイントでエラーの内容を確認する

ブレークポイントの位置(「CameraController.cs」ファイルの 29 行目)でプログラムが止まります。下記の手順で、変数の中身を確認できます。

unity-debug4

①:Visual Studio の左下に変数が表示されます。「this」の横にある三角のマークをクリックします。

unity-debug5

②:変数「followingSlowTarget」が null になっていることが確認できます。変数に値が割り当てられていないようです。

STEP5:デバッグ時の便利なコマンド

unity-debug6

上図のデバッグ時の操作は、下表のようなショートカットと対応しています。これらの操作を使って、より詳しくエラー内容を調べることができます。

デバッグの中止Shift + F5
再起動Ctrl + Shift + F5
次のステートメントの表示Alt + Num*
ステップインF11
ステップオーバーF10
ステップアウトShift + F11

STEP6:エラーの解決

デバッグの結果、今回のエラーは変数「followingSlowTarget」に値が割り当てられていないことが原因でした。ゲームオブジェクトをアタッチしたり、プログラム側で null チェックをするなどの対応が考えられます。

unity-debug7

デバッグをマスターすればエラーも怖くありません。プログラムの開発では、ぜひデバッグを使うようにしましょう。

広告

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA