Console ウィンドウ (menu: Window > Console) は、エラー、警告などUnity によって生成されたメッセージを示しています。デバッグを支援するために、Debug.Log, Debug.LogWarning や Debug.LogError 関数を使用して、コンソールで独自のメッセージを表示することもできます。
コンソールウィンドウのツールバーには、メッセージを表示する方法に影響を及ぼす多数のオプションがあります。
Clear ボタンは、コードから生成されたすべてのメッセージを削除しますが、コンパイルエラーは、保持します。Clear On Play オプションを有効にすると、ゲームを実行するたびにコンソールを自動的にクリアすることができます。
また、メッセージがコンソールに示されて、更新される方法を変更することもできます。Collapse オプションは、繰り返されるエラーメッセージの最初のインスタンスのみを示します。これは、時々、各フレーム更新で同じように生成される null 参照のようなランタイムエラーに、非常に役立ちます。error Pause オプションは Debug.LogError がスクリプトから呼び出されたときに再生を一時停止させます(しかし、Debug.Log は、この方法では一時停止しないことに注意してください)。実行中の特定のポイントで playback を凍結し、シーンを調べたいとき、これは便利です。
最後に、エラーに関するさらなる情報を表示するために2つのオプションがあります。コンソールタブメニューの Open Player Log と Open Editor Log 項目は、コンソールに表示されない場合、詳細を記録する Unity のログファイルにアクセスします。詳細は、ログファイル についてのページを参照してください。
Unity はコンソール上で、コード内で廃止された API 呼び出しを使用してた場合に警告を示します。たとえば、Unity はかつて一般的なコンポーネントタイプにアクセスするために、MonoBehaviour と他のクラスの中で “shortcuts” を持っていました。たとえば、以下のようなコードを使用して、オブジェクトの リジッドボディ にアクセスできました。
// "rigidbody"変数はクラスの一部で、ユーザースクリプトでは定義されません。
Vector3 v = rigidbody.velocity;
これらのショートカットは推奨されなくなりましたので、現在、以下のようなコードを使用する必要があります。
// コンポーネントにアクセスするには、GetComponent を使用します。
Rigidbody rb = GetComponent();
Vector3 v = rb.velocity;
廃止された API 呼び出しを検出すると、Unity はそれらについての警告メッセージを表します。このメッセージをダブルクリックすると、Unity は自動的に、非推奨の記述から推奨する記述にアップグレードしようとします。
ログメッセージをコンソールウィンドウやログファイルに出力するときに、スタックトレースを正確にキャプチャする方法を指定することができます。
これは、エラーメッセージが明確ではなく、普段エンジン領域でエラーとして見えないスタックトレース部分を見なければいけないときにとても便利です。 スタックトレースをロギングするのに 3 つのオプションが存在します。
また、スクリプトを介してスタックトレースをロギングすることができます。詳しくは Application.stackTraceLogType を参照してください。