UnityのDebug機能を便利にしたい!紹介編


現状のUnityEngine.Debugの問題

皆さんUnityのDebugクラスよく使いますよね? Debug.Log()とか。
でもたまに不便だな~って思う時ありません?

配列を表示したい時とか

        Debug.Log(new string[] {"a", "b", "c"});


↑配列なことぐらいわかってるわ!要素が欲しいんじゃ!
こういう場合はforeachなどで回すか、LINQでゴニョゴニョするとかしか無いんですよね、、、

非常にめんどくさい!!

というわけで作りました。その名もDebugExtentions
まだ制作途中で、機能が豊富とは言えませんが、一部をgithubに公開いたしましたので今回はそれをご紹介したいと思います。

DebugExtensions機能一覧
・普通のDebugクラスの機能全部(もしかしたら実装漏れがあるかも)
・命名の関係上ClearDeveloperConsole()ClearConsoleError()になっています。
・多少制限はあるけど、structも表示できます。
・Colorクラスの表示が見やすくなった
Array, List, HashSet, Dictionaryの要素表示(Format系は対応してないですごめんなさい、、)
・ログのテキスト保存
・コンソール全クリア
・リッチテキストを簡単に使えるぞ

1. Array, List, HashSet, Dictionaryの要素表示

個人的に一番最初に実装したかった機能。
こんな感じで表示されます。

Array・List・HashSet

    void Start() {
        string[] wordArray = new[] {
            "apple",
            "blue",
            "cactus",
            "default",
            "emission"
        };

        DebugEx.Log(wordArray);
    }

Dictionary

    void Start() {
        Dictionary<string, int> dict1 = new Dictionary<string, int>() {
            {"normalSword", 5},
            {"superSword", 2},
            {"apple", 100},
            {"water", 1}
        };

        DebugEx.Log(dict1);
    }

Dictionaryの冒頭2行は、KeyとValueの型情報を表示してくれています。
突っ込むだけで、簡単に要素を表示してくれるのでかなり便利になりました。

しかし、筆者の表示形式のセンスが無いので、あまり統一感がありません。
この表示形式は、これからのアップデートで改善していく予定です。

2. ログのテキスト保存

DebugEx.RecordStart();
処理
DebugEx.RecordStop();

RecordStart()RecordStop()の間で、ロギングが行われた場合、情報が保存されます。
RecordStop()が実行されたときに保存されるので注意。
デフォルトではDebugExtensions/Logsに保存されますが、設定で変えることができます。

3. コンソール全クリア

DebugEx.ClearConsoleAll();

その名の通り、まとめてログを全削除します。

4. リッチテキストを簡単に使えるぞ

"Alpha".Color(Color.red) //色の変更
"Bravo".Bold() //太字にする
"Charlie".Italic() //イタリック体にする
"Delta".Size(12) //文字のサイズを変更する
"Echo".RemoveRichText(); //リッチテキストを取り除く

Consoleではリッチテキストを使うことができるので、string型の変数に上記のようなメソッドを連結することで、リッチテキストに変換することができます。
コンソールの文字をちょっといじりたいときなどに便利です。

5. その他設定


LogSavePath: ログファイルを保存するパス
SaveStackTrace: ログの下の部分にくっついている、呼び出し元のトレース情報をログファイルに書き込むか
Dictionary Key,Value: Dictionaryをコンソールに表示するときの色

最後に

結構頑張ればもっと使いやすくなると思うので、これからブラッシュアップしていけたらなと思います。
リリースできるようになれば、アセットストアなどに出す予定です。

!!告知!!
現在、チームでShoutousというFPSゲームを開発しています!

~Shoutousとは?~
◉大規模な現代戦を題材にした
◉どんな遊び方でも皆活躍できる
◉今のFPSの良いとこ取りをした
◉e-Sports味の全くない、貴方の為の
◉意識低い系高画質お祭りFPSゲーム!

公式ツイッターのフォローよろしくお願いいたします!
Twitter: https://twitter.com/PlayChaosground

3Dデザイナーや、Unityエンジニアなども募集しているので、興味があればぜひTwitterID:@harumar0nにDMいただけるとありがたいです!