【Unity】エディタ再生時の待ち時間を10分の1にする方法!

はじめに

Unityでゲームを実行したとき、しばらく待ち時間が発生します。

頻繁に実行する場合この時間が結構ストレスが溜まりますよね…

実はある機能を有効化することでこの待ち時間が最大90%削減されるらしいです!!

それがEnterPlayModeSettingsという機能です。

EnterPlayModeSettingsとは

EnterPlayModeSettingsとはUnity2019.3から追加された機能です。

前述のとおり、こちらの機能を有効化することで、エディタプレイの待ち時間が激減します。

Unity公式によると50%~90%の短縮が見込めるみたいです。

画像:Unity公式ブログ

EnterPlayModeSettingsの使い方

設定方法はとても簡単です。

メニューバーからEdit>ProjectSettingsをクリックします。

ProjectSettingsが開けたら、Editorタブを選択します。

下の方へスクロールすると、EnterPlayModeSettingsという項目が出てきます。

こちらのチェックボックスをOnにします。

以上で設定完了です!

待ち時間の比較

今回はこちらのTPSサンプルアセットを使って、開始までの時間を計ってみました。

Starter Assets - ThirdPerson | Updates in new CharacterController package | Unity公式アセット | Unity Asset Store
Get the Starter Assets - ThirdPerson | Updates in new CharacterController package package from Unity Technologies and speed up your game development process. Fi

EnterPlayModeSettingsを有効化時は約0.04秒で開始することができました。

なんと98%も短縮できました!!

ほぼ待ち時間なしでデバッグできるのはうれしいですね!

注意点

設定も簡単でとても便利な機能なのですが、注意点もあります。

Enter Play Mode Settingsを有効にすると、エディタ停止後もStaticな値がそのままになります。

次回実行する時にその値から開始されることになります。

private static int count = 0; 

private void Update(){
  //再度実行する時は前回の値が残っている(0から始まらない)
    count++;
}

これはRuntimeInitializeOnLoadMethodというものを使うと解決できます。

これを使うと再生時に値を初期化できます。

private static int count = 0; 

//再生開始時に初期化
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
private static void Init(){
  count= 0;   
}
 
private void Update(){
    count++;
}

まとめ

とても便利な機能ですので、注意点を抑えつつうまく使っていきましょう!

今回は以上となります!

👇この記事を読んだあなたにお勧めの書籍

コメント