概要
2013/12/2 に、エディタ拡張用のアセット
「Console Enhanced Pro」がリリースされました
「Console Enhanced Pro」を導入すると、
Unity 標準よりも設定が豊富なコンソールウィンドウが使用できるようになります
検証環境
- Unity 5.6.2f1
- Console Enhanced Pro 2.6
表示
Unity メニューの「Window>Console Enhanced」を選択するとウィンドウが開きます
Ctrl + Shift + C でも開くことができます
Console Enhanced は基本的に Unity の組み込みコンソールと同様に出力されたログを表示します

プロライセンスの適用
Console Enhanced はプロライセンスが有効になるまでフリーバージョンモードで動作します
プロライセンスをアクティベートするには、設定ダイアログからシリアルナンバーを入力します
シリアルナンバーはアセットを購入した時に Unity から送られてくる電子メールに含まれています
電子メールに添付されている PDF の「オーダー番号」がシリアルナンバーに該当します
- ConsoleE ウィンドウ内を右クリックして「Advanced Settings」を選択します

- 「License」タブを選択します
- 「Invoice Number or Serial Key」の入力欄にオーダー番号を入力します

- 「Activate ConsoleE Pro License」ボタンを押します
- 成功ダイアログが表示されて「Status」が「ConsoleE is activated」になれば適用完了です


テキスト検索

ConsoleE ウィンドウの検索欄にテキストを入力すると
そのテキストを含むログのみが表示されます
Tab キーまたは Ctrl + F キーを押すことで
検索欄にフォーカスを合わせることができます
Esc キーを押して検索をキャンセルすることも可能です
コールスタック

コールスタックの任意の行をダブルクリックすることで
そのスクリプトファイルの該当する行を開くことができます
スクリプトを開くアプリケーションの選択

コールスタックの行を右クリックして「Open with」を選択すると
好きな外部エディタでスクリプトを開くことができます
複数選択

Console Enhanced は複数選択をサポートしています
Shift を押しながらクリックすると一度に複数のログを選択できます
Ctrl + A ですべてのログを選択可能です
右クリックしてログをコピーしたり削除したりできます
| 項目 | 内容 |
|---|---|
| Copy | ログをコピー |
| Copy Callstacks | コールスタックの文字列ごとログをコピー |
| Remove | ログを削除 |
設定ダイアログ
ConsoleE ウィンドウ内を右クリックして
「Advanced Settings」を選択すると、詳細設定ダイアログが開きます


基本設定
2行目表示

「Entry 2nd line」でログの表示行数を変更できます
- Onle line

- Two lines

ツールバー

「Toolbar」でツールバーに表示するボタンを変更できます

| ボタン | アイコン | 内容 |
|---|---|---|
| Clear | すべてのログを削除 | |
| Collapse | 重複するログをまとめる | |
| Clear on Play | オンならゲーム再生時にすべてのログを削除 | |
| Error Pause | オンならエラーログ出力時にゲームを停止 | |
| Extra Info | オンならログを出力した時間やオブジェクトの名前を表示 | |
| Small Buttons | オン オフ |
表示列

「Colmuns & extra info」を設定すると
ログを出力した時間やオブジェクトの名前を表示するかどうかを変更できます
- Hide

- Time & object

スムーズな自動スクロール

「Smooth auto-scroll」をオンにすると
新しいログが出力された時にコンソールの自動スクロールをスムーズにします

ファイルパス表示

「Hide file paths」をオンにすると
コールスタックに表示されるスクリプトのファイルパスを非表示にします
- オン

- オフ

末尾ログマーカー

「Advanced Setting>General」の「End-of-log marker」をオンにすると
最後のログを表示している時に区切り線の色が変わります

アイコンデザイン
「Icon Theme」でアイコンのデザインを変更できます

フォントサイズと表示間隔
「Font Size」でフォントサイズを変更できます
「Padding」でログの表示間隔を調整可能です

カスタムタブ
Console Enhanced では「ログ」「警告」「エラー」以外のタブを自分で作成できます

ログまたはコールスタックの行を右クリックして
「Categorize>Create New」を選択するとタブの設定画面が開きます
Icon(アイコンの表示)

| 項目 | 内容 |
|---|---|
| Theme | 使用するテーマ |
| Icon | アイコンをプリセットから選択 |
| Core color | 左側はアイコンの色 右側は背景アイコンの色 |
| Outline color | 左側はアイコンのアウトラインの色 右側は背景アイコンのアウトラインの色 |
| Background | 背景アイコンの形 スライダーを動かすと下記の図形の順に変化 1. 三角形 2. 八角形 3. 吹き出し 4. 円形 5. ひし形 6. 四角形 |
| Icon size | アイコンのサイズ |
| Outline | アウトラインのサイズ |
Rows(行の表示)

| 項目 | 内容 |
|---|---|
| Colorize | オンにするとテキストの色を変更可能 |
| Text Color | テキストの色 |
| Even BG | 偶数行の背景色 |
| Odd Bg | 奇数行の背景色 |
| Restore Defaults | デフォルト設定に戻す |
| Enable flash | オンにすると背景のフラッシュエフェクトを有効化 |
| Duration | エフェクトの表示時間(秒) |
| Color | エフェクトの色 |
| Preview | 設定したエフェクトのプレビューを再生 |
Keyword(タブに含むログ)

| 項目 | 内容 |
|---|---|
| Consume matches | オンにすると該当するログは他のタブに含まれない オフにすると該当するログは他のタブに含まれる |
| 入力欄 | タブに含むテキストを設定(改行すると複数のテキストを設定可能) |
Misc(その他)

| 項目 | 内容 |
|---|---|
| Enabled | オフにするとタブを無効化 |
| Share with anther tab | オンにすると他のタブの設定を継承 |
| Share with | 継承するタブ |
| Sharing | 継承する項目 |
| Open with | コールスタックをクリックした時に開くアプリケーション |
| Consume matches | 「Keyword」の「Consume matches」と同じ |
| Hide toolbar tab if empty | オンにすると該当するログが存在しない場合にタブを非表示 |
| "First 【タブ名】" button | オンにすると該当する最初のログにジャンプするボタンを表示 |
タブ設定の保存と読み込み

タブ設定は通常、プロジェクト内に保存されますが
タブ設定をプロジェクト外に保存して、複数の Unity プロジェクトで共有することができます
ラッパー関数の表示のグレーアウト

「Advanced Setting>Wrappers」の「Hide wrappers from second line」をオンにして
入力欄にログ出力用のラッパー関数の名前を入力すると
コールスタックに表示されるラッパー関数の名前がグレーアウトして押せなくなります
例えば下記のようなラッパー関数を使用している場合、
入力欄に DebugUtils:Log と記述すると設定が適用されます
using UnityEngine; public static class DebugUtils { public static void Log( object message ) { Debug.Log( message ); } }

ファイルを開くアプリケーションを上書き

「Advanced Setting>Open File」の「Override Open File Behaviour」の項目を設定すると
コールスタックの行がクリックされた時にファイルを開くアプリケーションを変更できます
その他の設定

「Advanced Setting>Misc」からその他の設定を変更できます
再生中のコンパイル

「Compile during play」を設定すると
Unity 再生中にスクリプトをコンパイルした時の挙動を変更できます
| 項目 | 内容 |
|---|---|
| Immediate(default) | 再生したままコンパイル |
| Compile on stop | 停止時にコンパイル |
| Stop and compile | 停止してコンパイル |
| Stop, compile, restart | 停止してコンパイルして再生 |
| Manual | 何もしない |
ステータスバーのクリック

「Status bar clicks」をオンにすると
Unity エディタ左下のステータスバーに表示されるログをクリックした時に
ConsoleE ウィンドウを開くようになります
拡張機能
エディタ拡張のスクリプトを記述することで
Console Ehanced の下記の動作を変更できます
- ConsoleE ウィンドウのコンテキストメニューの編集
- Time.time などの追加情報を表示文字列に追加
- ログエントリを選択したり、コールスタックをクリックした時のイベントをフック
using ConsoleE; using UnityEditor; [InitializeOnLoad] public static class Example_Editor { static Example_Editor() { Api.onClick += OnClick ; Api.onBuildMenu += OnBuildMenu ; Api.onSelection += OnSelection ; Api.onFormatObject += OnFormatObject ; Api.onFormatScript += OnFormatScript ; Api.onFormatCallstackEntry += OnFormatCallstackEntry ; Api.onFormatTime += OnFormatTime ; Api.onFormatFrame += OnFormatFrame ; } private static void OnClick( OnClickParams p ) { // コールスタックがダブルクリックされた } private static void OnBuildMenu( OnBuildMenuParams p ) { // コンテキストメニューの項目がクリックされた } private static void OnSelection( OnSelectionParams p ) { // ログやコールスタックがクリックされた } private static string OnFormatObject( OnFormatItemParams p, string objectName ) { // コンソールウィンドウに表示するオブジェクト名を返す return objectName; } private static string OnFormatScript( OnFormatItemParams p, string filename, bool hideExtension ) { // コンソールウィンドウに表示するスクリプトのファイル名を返す return filename; } private static string OnFormatCallstackEntry( OnFormatItemParams p, string callstack, int indexRow ) { // コンソールウィンドウに表示するコールスタックの名前を返す return callstack; } private static string OnFormatTime( OnFormatItemParams p, float time, bool isTimeApproximate ) { // コンソールウィンドウに表示するログ出力の時間を返す return time.ToString(); } private static string OnFormatFrame( OnFormatItemParams p, int frameCount, bool isFrameApproximate ) { // コンソールウィンドウに表示するログ出力のフレームカウントを返す return frameCount.ToString(); } }
上記のスクリプトよりも詳細な拡張方法を知りたい場合は
「Assets/ConsoleE/Editor/Extensions.zip」を展開した中に入っている
「ConsoleE_Extensions.cs」がサンプルコードが参考になります

カスタムボタン
通常のコンソールウィンドウと同様に
Console Enhanced はリッチテキストをサポートしています
さらに、次のようにカスタムボタンを表示することができます

カスタムボタンは出力するログに次の形式のテキストを使用することで表示します
<ConsoleE_Button=【関数名】>【ボタンテキスト】</ConsoleE_Button>
呼び出す関数は静的メソッドにする必要があります
using UnityEngine; public class Example : MonoBehaviour { private void Awake() { var message = "_(´ཀ`」 ∠)_ <ConsoleE_Button=Example.Callback>復活</ConsoleE_Button>"; Debug.Log( message ); } private static void Callback() { Debug.Log( "ヽ(•̀ω•́ )ゝ✧" ); } }
無料版
Console Enhanced には無料版が存在します
Console Enhanced に興味がある方はまずこちらを使用してみるのが良いかなと思います
ただし、無料版はいくつかの機能が制限されているので注意が必要です
参考サイト様
http://unityconsole.com/readme/
