概要
2015/2/7 に「SRDebugger」がリリースされました
「SRDebugger」を導入すると簡単にデバッグメニューを実装できるようになります
目次
検証環境
- Unity 2018.2.18f1
- SRDebugger 1.8.2
タブ
System タブ
ゲームを起動しているデバイスの情報や使用している Unity の情報などが確認できます
Console タブ
デバッグログを確認できます
Options タブ
変数やプロパティを変更できる項目を追加したり、
関数を呼び出すボタンを追加したりできます
Profiler タブ
FPS やメモリの使用状況を確認できます
「GC Collect」ボタンを押して GC.Collect()
を実行したり
「Clean」ボタンを押して Resources.UnloadUnusedAssets()
を実行したりできます
開き方
デフォルトでは画面左上を3回クリックすることでデバッグメニューを表示できます
ショートカットキー
キー | 内容 |
---|---|
Ctrl + Shift + F1 | System タブを開く |
Ctrl + Shift + F2 | Console タブを開く |
Ctrl + Shift + F3 | Options タブを開く |
Ctrl + Shift + F4 | Profiler タブを開く |
Esc | デバッグメニューを閉じる |
※ショートカットキーの割り当ては設定ウィンドウから変更できます
設定ウィンドウ
「Window>SRDebugger>Settings Window」を選択すると設定ウィンドウが表示されます
General
大項目 | 小項目 | 内容 |
---|---|---|
Loading | Disable | SRDebugger.Init() を呼び出すまでデバッグメニューが読み込まれない |
Automatic | ゲーム開始時に デバッグメニューが自動で読み込まれる |
|
Panel Access | Trigger Mode | デバッグメニューにアクセスできる条件 (常に、モバイルのみ、無効、Development Build のみ) |
Trigger Behaviour | デバッグメニューを開く方法 (3回タップ、長押し、2回タップ) |
|
Default Tab | デバッグメニューを開いた時に最初に表示されるタブ | |
Require Entry Code | デバッグメニューを開く時にパスワード認証を求める |
Layout
デバッグメニューのタブをピンした時に配置される位置
Shortcuts
キーボードショートカットを有効化するかどうか、
有効化する場合にどのキーを押すとどのタブが表示されるか
Advanced
大項目 | 小項目 | 内容 |
---|---|---|
Console | Collapse Log Entries | 重複するログをまとめる |
Rich Text in Console | リッチテキストをサポート | |
Max Console Entries | 保存するログの最大数 | |
Display | Transparent Background | デバッグメニューの背景を透過 |
Layer | デバッグメニューの表示レイヤー | |
Use Debug Camera | デバッグメニューを専用のカメラで描画 | |
UI Scale | スケーリング値 | |
Enabled Tabs | 有効なタブ |
Options タブのカスタマイズ
カスタマイズの基本
public partial class SROptions { private float m_value = 0.5f; public float Value { get { return m_value; } set { m_value = value; } } }
例えば、新規でスクリプトを作成して上記のコードを貼り付けた状態で
ゲームを実行してデバッグメニューの Options タブを開いてみると
Value プロパティを編集できる項目が追加されていることが確認できます
このように、partial クラスの SROptions を定義して
その中に public なプロパティを定義することで、
それを編集できる項目が自動で Options タブに登録されます
読み取り専用
public partial class SROptions { private float m_value = 0.5f; public float Value { get { return m_value; } } }
プロパティに set アクセサを定義しなかった場合、読み取り専用になります
関数を実行できるボタン
using UnityEngine; public partial class SROptions { public void Log() { Debug.Log( "ピカチュウ" ); } }
戻り値が void の public な関数を定義すると、その関数を実行できるボタンを配置できます
値を範囲内に制限
public partial class SROptions { private float m_value; [NumberRange( -5, 5 )] public float Value { get { return m_value; } set { m_value = value; } } }
NumberRange 属性を適用すると値を範囲内に制限できるようになります
値の変化値を変更
public partial class SROptions { private float m_value; [Increment( 5 )] public float Value { get { return m_value; } set { m_value = value; } } }
Increment 属性を適用すると値の変化値を変更できるようになります
表示名を設定
using UnityEngine; public partial class SROptions { [DisplayName( "ピカチュウ" )] public void Log() { Debug.Log( "ピカチュウ" ); } }
DisplayName 属性を適用すると項目の表示名を変更できます
表示順の変更
public partial class SROptions { [Sort( 3 )] public void Log1() { } [Sort( 2 )] public void Log2() { } [Sort( 1 )] public void Log3() { } }
Sort 属性を適用すると数値が低いほど最初に表示されるようになります
カテゴリ分け
using System.ComponentModel; public partial class SROptions { [Category( "カテゴリ A" )] public void A1() { } [Category( "カテゴリ A" )] public void A2() { } [Category( "カテゴリ B" )] public void B1() { } [Category( "カテゴリ B" )] public void B2() { } [Category( "カテゴリ C" )] public void C1() { } [Category( "カテゴリ C" )] public void C2() { } }
Category 属性を適用すると指定した文字列でカテゴリ分けできます
ピン
各タブに表示されているピンボタンを押すことで
よく使うタブや Options の項目をゲーム画面に常に表示しておくことができます
まとめ
以上が SRDebugger の基本的な使い方、カスタマイズの方法になります
デバッグメニューを作りたいけど工数を削減したい、という方は
ぜひ使ってみていただければと思います