コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】ゲーム内にチートコードを実行するターミナルを追加できる「Command Terminal」紹介(無料)

概要

2018/8/1 に「Command Terminal」がリリースされました

 
「Command Terminal」を導入すると、
ゲーム内にチートコードを実行するターミナルを追加できるようになります

検証環境

  • Unity 2018.2.2f1
  • Command Terminal 1.0

使い方

f:id:baba_s:20180804174042p:plain

シーンのオブジェクトに「Terminal」をアタッチします

f:id:baba_s:20180804174050p:plain

そして、ゲームを実行して「`」を押すとターミナルが起動します

f:id:baba_s:20180804174056p:plain

ターミナルを起動した状態で「help」と入力して Enter を押すと
デフォルトで使用できるコマンドの一覧が確認できます

using CommandTerminal;
using UnityEngine;

public class Example : MonoBehaviour
{
    [RegisterCommand( "RESET.POS" )]
    static void ResetPos( CommandArg[] args )
    {
        var cube = GameObject.Find( "Cube" );
        cube.transform.position = Vector3.zero;
    }

    // HELP        : ヘルプで表示するテキスト
    // MaxArgCount : 引数の最大数
    // MinArgCount : 引数の最小数
    [RegisterCommand( "SET.POS", Help = "位置を設定します", MaxArgCount = 4, MinArgCount = 4 )]
    static void SetPos( CommandArg[] args )
    {
        var pos = new Vector3
        (
            args[ 1 ].Float,
            args[ 2 ].Float,
            args[ 3 ].Float
        );
        var cube = GameObject.Find( args[ 0 ].String );
        cube.transform.position = pos;
    }
}

コマンドを自作したい場合は、static な関数に RegisterCommand 属性を適用します
例えば、上記のようなスクリプトを作成してゲームを実行すると

f:id:baba_s:20180804174827g:plain

ターミナルから自作したコマンドを実行できることが確認できます