【Unity】エディターでテスト再生の始まりを早くする

2022年12月21日

デフォルトでは、再生するときには、スクリプトの初期化が行われますが、この手順を省略することで再生開始までの時間を短くすることができます

シーン構成

スクリプト

変数aは、static変数です
初期値に10が代入されているので、Startメソッドでは、11が表示されることになります

using UnityEngine;

public class Test : MonoBehaviour
{
    static int a = 10;

    void Start()
    {
        a++;
        Debug.Log(a);
    }
}

エディタでの再生動作

デフォルトの動作

最初にUnityをインストールしたすぐの状態(デフォルト)の動作を見てみましょう

再生の様子

再生するたびにスクリプトの初期化が行われています

結果の表示

2回実行していますが、2回とも11と表示されます

11

実行するたびにReloading Domainが実行されます

初期化を省略時の動作

次にスクリプト初期化省略を見ていきましょう

設定の変更

サンプルはMacですが、Windows版でも同じです
EditメニューからProject Settings…を選択します

Enter Play Mode SettingsのEnter Play Mode Options にチェックを入れ、Reload Domainのチェックを外します

Reload Sceneは再生の度にシーンのロードを行うかの設定です(今回は関係しません)

再生の様子

再生するたびのスクリプトの初期化は行われていませんね(初期化のWindowが表示されていません)

結果の表示

また、実行する度にコンソールの表示が1づつ増えています
つまり、初期値の10の代入が行われていないということです

11
12
13
14

まとめ

static変数を使っている場合は、使えませんね
また、自作のスクリプト以外(インポートされたアセット)で使っていても同じく使えません

この辺りの制約がありますが、うまく使って開発時短に結びつけましょう

参考

Unity

Posted by hidepon