ただの適当な開発記

会社勤めしつつUnityでアプリ作ってる人の雑記

実機でのデバッグサポートアセットSRDebugger使ってみた #Unity #AssetStore

最近プロジェクトで使い始めたアセットがとても便利なので紹介したいと思います。

SRDebuggerとは

こちらのSRDebuggerです。

こちらは実機でのデバッグをサポートしてくれるアセットですが、使える機能がとにかくリッチ。

  • 実機でのログ確認(Debug.Log系の出力確認)
  • 実機でのプロファイラー表示
  • 使用している端末のスペック表示
  • コード上で属性をつけた変数を実機上でいじれるようになる

こんなことができちゃいます。

実際の開発現場でもこのアセットの存在を知らずにこれに該当する機能を作ろうとしているプロジェクトは多いのではないでしょうか。
かくいう自分も会社で同じような機能を実装しようとしていたところに、前のプロジェクトで一緒だったエンジニアの先輩が教えてくれて知りました。笑

起動方法

デバッグメニューはこんな感じで画面の左上をタップすると起動します。

f:id:cocokyoro:20170530235059g:plain

このデバッグメニューを有効化するために何かを事前にやる必要はありません。
シーンにprefabを置くとか、事前にコードを置くとかは必要ないです。
これをどういう仕組でやっているかは後日別の記事で書きます。笑

機能一覧

上で取り上げた各機能について一つ一つ見ていきます。

実機でのログ確認

f:id:cocokyoro:20170531002019p:plain

こんな感じでDebug.Log,Debug.LogWarning,Debug.LogErrorで出力した文字列は実機上で見れます。

f:id:cocokyoro:20170531002045p:plain

上の3色のボタンのオンオフを切り替えればログレベルでの出し分けも簡単にできちゃいます

f:id:cocokyoro:20170531002114p:plain

文字列を入力してのフィルタリングも対応

f:id:cocokyoro:20170531002128p:plain

上の方にあるピンボタンを有効にするとデバッグウインドウを閉じてもログが見れます

実機でのプロファイラー表示

f:id:cocokyoro:20170531002803p:plain
こんな感じでUnityEditor上のProfilerと同じような情報が実機上で見れてしまいます
見れる項目はUpdate,Render,Otherの3つ、流石にEditorのProfilerよりは項目は少ないですが、実機上でこの項目が見れるのはありがたい

使用している端末のスペック表示

f:id:cocokyoro:20170531005443p:plain

こんな感じで端末のスペックが見れます。
うつってるのは愛用のKindleFireのスペックです

コード上で属性をつけた変数を実機上でいじれるようになる

こんなコードを書いてみます

※partialクラスである点に注意

using System.ComponentModel;
using UnityEngine;

public partial class SROptions {

	private float _sampleProperty1 = 0.5f;
	private float _sampleProperty2 = 0f;
	private float _sampleProperty3 = 0f;
	
        //プロパティをいじれるようにするための属性
	[Category("Sample Category1")] 
	public float SampleProperty1 {
		get { return _sampleProperty1; }
		set { _sampleProperty1 = value; }
	}
	
        //Rangeも指定できます
	[NumberRange(0,10)]
	[Category("Sample Category2")] 
	public float SamplePropert2 {
		get { return _sampleProperty2; }
		set { _sampleProperty2 = value; }
	}

        //同カテゴリ内に複数のプロパティをセットすることもできます	
	[NumberRange(0,10)]
	[Category("Sample Category2")] 
	public float SamplePropert3 {
		get { return _sampleProperty3; }
		set { _sampleProperty3 = value; }
	}
	
        //メソッドも簡単に呼べちゃいます
	[Category("Sample Method")] 
	public void SampleMethod() {
		Debug.Log("こりゃ便利だ");
	}
}

これで実行してデバッグウインドウを開き、"Options"の項目を開くと...

f:id:cocokyoro:20170531010952p:plain

すばらしい....

チームで開発していると「この項目を気軽にいじれるようにして欲しい」とか「あの処理いつでも呼べるようにしてよ」とかそういった要望が出てくるわけですが、この機能があれば対応できちゃいます。

まとめ

SRDebuggerは非常に高機能なデバッグサポートツールです。
もし、独自にこういったデバッグ機能を実装しようとしている場合は、一度導入して試してみることをおすすめします。

そんなわけで今日は以上です。