モバイルで使いやすいデバッグコンソール、AbcConsoleを作りました!

github.com

output

機能

  • Debug.Logの出力を実機で確認、クリップボードにコピー出来ます。
  • 入力補完付きのテキストボックスで、モバイルでも素早くデバッグコマンドが打ち込めます。
    • この入力補完付きって部分が探してもなかなか見つからなかったので作っちゃいました。
  • もちろんEditor上やWindows, macビルドでも動作します。
    • チルダキーで起動して、Tabキーや上下キーなどもよくあるコンソールのように機能します。

使い方

準備

  • Package Managerで以下の2つをインポートします。(UnityPackage版はAssetStoreで公開予定)

    • Import AnKuchen https://github.com/kyubuns/AnKuchen.git?path=Unity/Assets/AnKuchen
    • Import AbcConsole https://github.com/kyubuns/AbcConsole.git?path=Assets/AbcConsole
  • メニューの Assets > Create > AbcConsole で、AbcConsole GameObjectをゲームの一番最初のシーンに配置します。

  • 実行すると左上に赤いボタンが出るので、それを押すとデバッグコンソールが開きます!
    • ボタンの色や位置の調整方法はFAQで紹介します。ボタンは透明にするのがオススメです。

デバッグコマンドを定義する

AbcConsoleAttributeをつけてstaticでメソッド定義するだけで呼び出せます。

using UnityEngine;

namespace AbcConsole.Demo
{
    public static class DemoCommand
    {
        [AbcCommand]
        public static void SpawnCube()
        {
            var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
            cube.name = "Cube";

            Debug.Log("Spawn Cube Success!");
        }

        [AbcCommand]
        public static void SetCubeColor(int r, int g, int b)
        {
            var cube = GameObject.Find("Cube");
            cube.GetComponent<MeshRenderer>().material.color = new Color32((byte) r, (byte) g, (byte) b, 255);

            Debug.Log($"Set Cube Color ({r}, {g}, {b})");
        }

        [AbcCommand]
        public static void SetCubePosition(float x, float y, float z)
        {
            var cube = GameObject.Find("Cube");
            cube.transform.position = new Vector3(x, y, z);

            Debug.Log($"Set Cube Position ({x}, {y}, {z})");
        }
    }
}

FAQ

トリガーボタンの色や位置を変更するには?

配置したAbcConsole GameObjectの中身を変更してください。
AbcConsole/Canvas/TriggerButtonの色や形を変更すると適応されます。

productionビルドに含めたくないときは?

AbcConsole GameObjectを削除すると起動しなくなります。
シーンに含めないようにすれば、無駄なアセットが入ることもありません。

他の条件で起動するようにしたいときは?

AbcConsole/Canvas/TriggerButtonのGameObjectをDisableにし、
AbcConsoleについているRoot ComponentのOnClickTriggerButtonメソッドを呼び出すと自由に起動できます。

github.com