Nobollel開発者ブログ

Nobollelのエンジニアが、UnityやCocos2d-xの旬な情報・技術を紹介します。

実機(iPhone, Android)でのデバッグ

こんにちは、石橋です。

みなさんは実機(iPhone, Android)でのデバッグはどのようにされていますか?
エディタ上では停止ボタンでインスペクタからパラメータを弄ることも簡単にできますが、実機ではそうもいきませんよね?
Unityには予めGUIが備わっていてボタンやテキストフィールドなどを表示しすることも出来ますが、作るのは結構大変です。
そこで、今回はサクッとデバッグメニューが作れるおすすめのアセットを紹介します。

SRDebugger

お値段30$(記事記載時)

ダウンロード&インストールすると直ぐに使用できます。
実行して画面左上を3回タップするとデバッグメニューが開きます。(オプションで変更できます)

f:id:nobollel:20160708140301p:plain

画面左にSystem, Console, Options, Profilerというボタンがあります。
Systemは端末の情報を、ProfilerはFPSやメモリ使用量を見ることが出来ます。
ConsoleはEditorのConsoleと同じものを出してくれるのでログを仕込んでおき、テストプレイヤーからの報告にも使えます。

さて、本題のOptionsに移りましょう。
これを利用するにはスクリプトを書く必要があります。

using UnityEngine;
using System.Collections;
using System.ComponentModel;
    
public partial class SROptions {
  [Category( "Hoge" )]
  [DisplayName( "Fuga" )]
  public void HogeHoge() {
    Debug.Log( "PiyoPiyo" );
  }
}   

このように記載すると以下のような表示になります。

f:id:nobollel:20160708140316p:plain

HogeというカテゴリでFugaというメソッドが作成できました。
画面上のFugaの部分はボタンになり、押すとPiyoPiyoというログが表示されます。
Categoryを使用するにはSystem.CombonentModelのusingが必要になります。
DisplayNameはメソッドと違う表示にしたい場合に使います、この部分は日本語も可能です。

今度はプロパティを追加してみましょう。

    [Category( "Hoge" )]
    [DisplayName( "HP" )]
    public int HP {
        get;
        set;
    }

f:id:nobollel:20160708140351p:plain

<> で数字の加減算が出来る他、数値をクリックするとキーボードで直接設定も出来ます。
Propertyの場合、setをprivate setとすることにより読み取り専用にも出来ます。
bool値の場合はチェックボックスで表示されます。

メソッドやプロパティを増やしていくと表示がごちゃごちゃになりますのでSort属性を使って順番を設定することもできます。

using UnityEngine;
using System.Collections;
using System.ComponentModel;

public partial class SROptions {
    [Category( "Hoge" )]
    [DisplayName( "Fuga" )]
    [Sort( 0 )]
    public void HogeHoge() {
        Debug.Log( "HogeHoge" );
    }

    [Category( "Hoge" )]
    [DisplayName( "HP" )]
    [Sort( 1 )]
    public int HP {
        get;
        set;
    }

    [Category( "Hoge" )]
    [DisplayName( "Readonly" )]
    [Sort( 2 )]
    public int ReadonlyProperty {
        get;
        private set;
    }
}

Sortを設定すると以下のようになります。

f:id:nobollel:20160708140416p:plain

如何でしたか?
基本的な部分のみですが、これだけでも簡単にデバッグ環境を構築できることが判っていただけるかと思います。
他にも属性やAPIが多数あるので公式ドキュメントを参照して下さい。
この記事が皆さんのお役に立てたら幸いです。