CUDLRによるデバッグ
CUDLR
CUDLR(Console for Unity Debugging and Loggin Remotely)
Unityアセットストアより無料で入手可能なアセット
ターゲットのデバイスに、簡易なWebサーバ(のような物)を稼働させ、Log等をブラウザから確認可能したり
幾つかの簡単なコマンドを実行可能にするツール
使用方法
デバッグオブジェクトの追加
CUDLRの機能を使用するには、GameObjectとして配置する必要があります。
プロジェクトを開き、HierachyウィンドよりEmptyObjectをシーンへ追加し
追加したGameObjectへ、コンポーネントとしてCUDLRのServerを追加します。
Assets/CUDLR/Script/Serverをコンポーネントとして、GameObjectへ登録する
確認の為に、下記のようなコンポーネントを登録します
1 2 3 4 5 6 7 8 9 10 11 | public class DebugPring : MonoBehaviour { // Use this for initialization void Start () { Debug.Log("Script start"); } // Update is called once per frame void Update () { } } |
ビルドし、Deviceにインストールし、アプリケーションを起動します
起動後、ブラウザでhttp://[DviceのIP]:55055/へアクセスすると、実行中のアプリログが確認できます。
DeviceのIPは事前に確認しておいてください。
サンプルで設定したコンポーネントのログが出力されていますね
注意点
リリースモジュールに含まれると、セキュリティー上のリスクとなります。
リリース時にはCUDLRオブジェクトの削除を忘れずに行いましょう
VSCodeによるデバッグ
次にVSCode上にブレークポイントを設定し、ステップ実行を行ってみます
テスト用のコードを少し改変し、ビルド、インストールを行います
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public class DebugPring : MonoBehaviour { // Use this for initialization void Start () { Debug.Log("Script start"); StartCoroutine(PrintLog()); } // Update is called once per frame void Update () { } IEnumerator PrintLog(){ var i=0; while(true){ Debug.Log("Loop Start"); i++; Debug.Log(string.Format("count : {0}",i)); yield return new WaitForSeconds(5); Debug.Log("Loop End"); } } } |
アプリの起動後、CUDLRで確認します。
一定時間毎にログが出ていることが確認できます。
デバッグ対象をAndroidPlayerに変更し、再生(▶ボタン)を選択する
しばらく待つと、ブレークポイントで止まる事が確認できます。
変数の中も確認できました。
これで開発が進められそうです。
最後に
執筆時点で、2018.2.0b5がリリースされていたのですが、これはBetaリリースです。
こちらのバージョンはVSCodeからDeviceniにAttacheできませんでした。
xxxx.x.0fxと行ったバージョンが正式バージョンのようですので、利用する際は注意しましょう