Console ウィンドウの概要
Tutorial
·
Beginner
·
+10XP
·
10 mins
·
(16)
Unity Technologies
Console ウィンドウは、プロジェクトのデバッグや、スクリプトのどこに問題があるのかを発見するのに非常に便利なツールです。本チュートリアルでは、Console ウィンドウの使い方と、そこに表示される情報を理解する方法を学びます。
Languages available:
1. Console ウィンドウの概要
2. Console ウィンドウって何?
このチュートリアルは、Unity 2019 LTS を使用して検証されています。
Console ウィンドウは、プロジェクトのデバッグやスクリプトの問題点を発見するのに非常に便利なツールです。数千行のコードと多くのスクリプトを含むプロジェクトでは特に、デバッグプロセスを高速化しながら多くの苦痛を和らげることができるので、開発者が最大限に活用すべき必須のツールです。 開発時に Console ウィンドウを利用する習慣をつけることは、開発者にとってメリットしかありません。
Console ウィンドウでは、エラーや警告が発生した場所とその考えられる原因を確認することができます。コンソールは、スクリプト言語で独自のメッセージを作成することで、デバッグを支援するためにも使用されます (画像 01)。

画像 01:Console ウィンドウ
3. Console ウィンドウを開く
まず、Console ウィンドウのツールバーを見てみましょう。このツールバーはいくつかの方法で開くことができます。
1. 上部のドロップダウンメニューから、Window > General > Console の順に選択します。
2. Windows では Ctrl+Shift+C、MacOS では Command+Shift+C を押します。
Console ウィンドウはドッキング可能なウィンドウで、セッション間でその状態が保持されます (画像 01)。Console ウィンドウには、メッセージの表示方法を調整できるツールバーがあります (画像 02)。

画像 02:Console ツールバー
Console ウィンドウのツールバーでは、メッセージの表示方法に関するオプションを選択することができます。左から右の順に表示されます:
- Clear:コードからのメッセージはすべて削除されますが、コンパイラーからのエラーメッセージは保持します。
- Collapse:メッセージの表示方法を切り替えます。オンにすると、繰り返し表示されるエラーメッセージの最初の実例のみを表示します。これは、フレームの更新ごとに同じものが生成されることがあるランタイムエラーに有効です。
- Clear On Play:このボタンをオンにすると、再生モードに入るたびにコンソールを自動的にクリアします。
- Clear On Build:このボタンをオンにすると、プロジェクトをビルドするたびに、Clear ボタンと同様にコンソールをクリアします。
- Error Pause:このオプションは、Debug.LogError がスクリプトから呼び出されるたびに、ゲームの再生を一時停止します。なお、Debug.Log が呼び出される場合は、このオプションは再生を一時停止しません。
- Editor:このドロップダウンには、エラーに関する追加情報を表示するための 4 つのオプション(Player Logging, Full Log, Editor, <Enter IP>)があります。コンソールがリモートの開発ビルドに接続されている場合は、このオプションを選択すると、リモートビルドからのログではなくローカルの Unity プレイヤーからのログが表示されます (画像 03)。

画像 03:Console ウィンドウの Editor ドロップダウン
- Message Counts:ツールバーの右端に、吹き出しボタン、ハザードボタン、一時停止ボタンの 3 つのシンボルが表示されています。これらは、Console ウィンドウに送信されたメッセージの数に対応しています。また、これらのメッセージを選択すると、Console ウィンドウに表示するメッセージの種類を切り替えることができます。吹き出しボタンには一般的なメッセージを、ハザードボタンは警告を、ストップボタンはエラーメッセージを表します。
4. 独自のメッセージを表示するスクリプトの作成
独自のメッセージを Console ウィンドウに表示するコードは、通常のメッセージを生成する方法、警告を表示する方法、そして最後にエラーを表示する方法の 3 種類があります (画像 04)。

画像 04:Console ウィンドウのログコード
1. 新しいスクリプトを作成し、名前を「Sample Debug」とします。
2. シーン内にゲームオブジェクトを作成し、そのゲームオブジェクトにスクリプトをアタッチします。
3. それが完了したら、お好みのエディターでスクリプトを開きます。
4. デバッグメッセージはどこにでも表示できるので、ここでは単純に、スクリプトの Start() 関数の中に Debug.Log("Hello World"); を配置します。
5. Unity エディターで Play を選択すると、デバッグメッセージが 1 回表示されます。このコードを Update() 関数に移すと、デバッグメッセージがフレームごとにログに記録されるようになります。
これらのコマンドは、作成した任意の関数内に存在することができ、実行されると呼び出されてログに記録されます。
ゲームの実行中にスクリプトのコードをゲームオブジェクトにアタッチすると、Console ウィンドウにメッセージが生成されます。「Hello World」が 2 回表示されていることがわかると思いますが、一方は 1 回の呼び出しで、もう一方はフレームごとに継続して更新されています。Collapse ボタンがトグルになっていることを確認し、メッセージの右側に数字のカウントがある重複したメッセージのスタックを表示します (画像 05)。

画像 05:Custom Debug コードを含む Console ウィンドウ
5. Console ウィンドウのプロパティ
Console ウィンドウには、コード内の廃止された API コールの使用に関する Unity からの警告も表示されます。時代遅れの API コールが検出されると、Unity はそれぞれの API コールについて警告メッセージを表示します。これらの警告の追加機能は、メッセージをダブルクリックすると、Unity が非推奨コードを推奨コードに自動的にアップグレードしようとすることです。
ログエントリーが Console ウィンドウに表示される行数(または、粒度)を調整するには:
1. Console ウィンドウの左上にある Menu を右クリックします (画像 06)。
2. Log Entry サブメニューを選択します。
3. 表示したい行数を選択してください。

画像 06:ログエントリーの行数の選択
6. Console ウィンドウのスタックトレース
また、Console ウィンドウがログメッセージをキャプチャする際に、スタックトレースの精度を指定することもできます。スタックトレースとは、プロジェクトの実行中のある時点でのアクティブなスタックフレームのレポートです。これは、エラーメッセージがあまり明確でない場合に特に役立ちます。スタックトレースを見ることで、どのエンジン領域でエラーが発生しているかを推測することができます。
例えば、プロジェクトを実行しているときに、インベントリの中でアイテムを移動させるとアイテムが削除されてしまうなど、現在の操作に関連するスクリプトにバグが埋もれてしまうことがあります。一番に疑われるのはインベントリシステムですが、実際にはレイヤーの数段階下のオブジェクトを管理するコードに潜むバグです。スタックトレースを行うことで、バグ発生時に実行されていたすべてのコンポーネントの実行パスを確認することができます。このパスが見えることで、一連のイベントを追うことができ、プロジェクト内の問題を解決するのに非常に役立ちます (画像 07)。

画像 07:「Stack Trace Logging」のオプション
Stack Trace Logging の設定には、以下の 3 つのオプションがあります:
- None:Unity はスタックトレース情報を出力しません。これはデフォルトのケースで、問題のエラーのみを表示します。これは、最も速く、最もリソースを消費しないオプションで、単純なスクリプトをデバッグしているときに、手動でデバッグメッセージを送信する場合に便利です。
- ScriptOnly:Unity はマネージコードのスタックトレース情報を出力します。この機能は、自己完結型の堅牢なスクリプトで役立ちます。エラーが発生している場所を正確に把握するのに役立ちます。
- Full:Unity はマネージとアンマネージ、両方のコードのスタックトレース情報を出力します。フルスタックトレースの解決にはコストがかかるため、どこでエラーが発生しているのかを確認するのが難しい複雑なシステムのデバッグ目的でのみ使用することをお勧めします。
7. まとめ
Console ウィンドウを使いこなし、その機能を活用する習慣を身につけ、学んだことを実践することが、開発者としてのスキルを高め、自分や他人のプロジェクトのトラブルシューティングを行えるようになるための次のステップとなるでしょう。これは、開発者にとって不可欠なスキルであり、長い目で見ればあなたのためになるものです。将来のプロジェクトでは、Console ウィンドウと、独自のデバッグメッセージを生成する機能をぜひ活用してください。