今回はUnityのConsoleウインドウについてみていきます。
UnityのConsoleウインドウではスクリプトのコンパイル結果や実行時のエラー、スクリプトで設定した値が正しいかどうかの結果の出力でよく見ています。
コンソールタブを表示すると↑のような画面が表示されここに結果が表示されます。
コンソールウインドウの設定
コンソールウインドウの設定について見ていきましょう。
Clearボタン
Clearボタンを押すとコンソールの表示を全て消す事が出来ます。
スクリプトを作成したり修正して保存をすると
コンソール画面に↑のような警告等が表示されます(もちろん警告がなければ表示されません)。
これらが表示されていると見づらいのでClearボタンを押すと
↑のようにコンソールの表示が消えます。
ただし、スクリプトのエラーの場合はエラーを修正する必要がありClearボタンでは消えません。
スクリプトのエラーを修正するにはエラーが表示されている部分をダブルクリックしてMonoDevelop等のスクリプトエディターを開くとおかしい部分がハイライトされるので便利です。
Collapseボタン
Collapseボタンは同一の表示を一行で表示するか常に新しい行で表示するかの設定で、オン・オフをするボタンです。
サンプルのスクリプトを作成し何らかのゲームオブジェクトに設定し確認してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | using UnityEngine; using System.Collections; public class ConsoleTest : MonoBehaviour { private float nowTime = 0f; // Use this for initialization void Start () { } // Update is called once per frame void Update () { nowTime += Time.deltaTime; if (nowTime >= 1f) { Debug.Log ("ConsoleTest"); nowTime = 0f; } } } |
このスクリプトは1秒毎に『ConsoleTest』という文字列をコンソールに表示していく処理です。
Collapseを無効にすると
↑のように『ConsoleTest』という文字列が下にズラズラと表示されていきます。
Collapseを有効にすると
↑のように同じ行に表示され右側に表示回数が表示されるようになります。
Clear On Playボタン
Clear On PlayボタンはUnityの実行をしたらコンソールの表示を消すかどうかの設定でオン・オフをするボタンです。
Clear On Playをオフにすると
↑のように最初に実行してコンソールに文字を表示した後にUnityの実行をやめ、再度実行させるとコンソールの表示が消えず続きから文字が表示されています。
Clear On Playをオンにすると
↑のように実行前に表示されていたコンソールの文字が実行とともに消えるようになります。
Error Pauseボタン
Error Pauseを有効にするとUnity実行中に何らかのエラーが発生した時にUnityの実行を一時停止します。
Error Pauseもオン・オフをするボタンになります。
何らかのゲームオブジェクトに新しいスクリプトを取りつけエラーを発生させ確認してみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 | using UnityEngine; using System.Collections; public class ConsoleTest2 : MonoBehaviour { // Use this for initialization void Start () { Debug.LogError ("自発的にエラーを発生"); } } |
Startメソッドで自分でエラーを発生させます。
Error Pauseを無効にすると
↑のようにエラーが発生してもUnityの実行は継続したままになります。
Error Pauseを有効にすると
↑のようにエラーが発生した時にUnityの実行が一時停止されるようになります。
コンソールウインドウのメニュー
Consoleウインドウのタブの上にマウスポインタがある状態で右クリックをすると
↑のようなメニュー項目が表示されます。
Open Editor Logを選択するとEditorに記録されているログ情報をテキストエディタで開き見る事が出来ます。
Stack Trace Logging項目にはNone、ScriptOnly、Fullという項目があります。
Noneにすると表示する文字列以外は表示されません。
↑のように文字列しか表示されていません。
ScriptOnlyにすると
↑のように文字列と発生した場所等の情報が表示されています。
Fullにすると
↑のように全てのログが表示されます。
これらは先ほどのOpen Editor Logで開いたログ情報に記録されます。
通常はScriptOnlyしか使わないと思います・・・・(-_-)
スクリプトでログの出力形式を変更する
先ほどのように手動でログの出力形式を変更する事も出来ますが、スクリプトから変更する事も出来ます。
何らかのゲームオブジェクトにスクリプトを設定し実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | using UnityEngine; using System.Collections; public class ConsoleTest3 : MonoBehaviour { // Use this for initialization void Start () { // 古い設定方法 Application.stackTraceLogType = StackTraceLogType.None; // Application.stackTraceLogType = StackTraceLogType.ScriptOnly; // Application.stackTraceLogType = StackTraceLogType.Full; // 新しい設定方法 // Application.SetStackTraceLogType(LogType.Log, StackTraceLogType.None); Debug.Log ("ログテスト"); } } |
わたくしのUnityのバージョン(5.3.4f1)ではApplication.stackTraceLogTypeの値を書き換える事でログの出力形式を変更する事が出来ます。
ですがこちらは古い形式なので新しいUnityをお使いの方はApplication.SetStackTraceLogTypeを使用してください。
こちらは第1引数にログの形式(エラー、警告、ログ出力等)を設定し、第2引数にログの出力形式を設定します。
Unityを実行すると
出力形式をNoneにしたので文字列だけが表示されています。