UnityのGame ViewにLogを表示するツールつくった

Unityでゲームやアプリを開発している際に、エディター上では問題なく動作しているが、 iOSAndroid端末で実行するとエラーになったり、クラッシュしたりというケースがあるかと思います。

Xcode(iOS)やLogcat(Android)を使ってログをチェックすれば、原因を特定できますが、PCと端末をつないだり、ログを出力するコードを書いたりと結構手間がかかります。

今回、そういった手間をなるべく減らしたいということで、ログを端末上で確認しやすくするGUIツールを作りました。

GUIConsole.cs

ソースコードGitHubに置いておきました。

画面はこんな感じです。

f:id:takashicompany:20140302231848p:plain

基本的なUI構成はUnityのConsoleに似せてあります。

できること

  • ログのリスト表示(Log、Warning、Error、Exception)
  • ログの詳細表示(呼び出しファイル・関数の追跡可)
  • ログの簡易エクスポート機能
ログの簡易エクスポート
  • Unityエディター : クリップボードへログの内容をコピー
  • iOS/Android : メール画面にログの内容を出力
    となっております。

本当はiOSAndroid端末でもクリップボードにコピーしたかったが、
ネイティブの機能を追加しなくてはならない感じなので、
ひとまずメール画面(本文)に出力するように。

使い方

f:id:takashicompany:20140302233137p:plain

f:id:takashicompany:20140302233202p:plain

GUIConsole.csとGUIConsoleButton.csをシーン内の同じGameObjectにアタッチすると動作します。

詳しい使い方は、GithubのReadmeとAssets/GUIConsole/Sample/Scenes/GUIConsoleSampleScene.unityにサンプルがあるので、そちらをご覧ください。

LogViewerとの違い

同じくGame ViewにLogを表示するツールとしては、 LogViewerがあります。 LogViewerの記事

GUIConsoleのLogViewerとの違いを挙げると、

  • 表示がウィンドウになっている & 背景が透過なので、操作しながら確認ができる。
  • コンソールのウィンドウサイズなどを、Inspector上で設定できる。
  • ログ・エラーの関数の呼び出しが追跡ができる
  • ログの内容をエクスポートできる。

が挙げられます。
ケースによって使い分けると良いかと思います。