[Unity Tips] Play Modeの実行を高速化する

Unity Tipsのサムネイル

Enter Play Mode オプションを使うことで高速化する

Unityの「Enter Play Mode オプション」は、エディタでのプレイモードへの移行を高速化し、開発効率を向上させる機能です。

この機能を使うと、コードの変更を反映するためのリロードを省略し、即座にプレイモードに入ることができます。

設定方法

  1. 「Edit」メニューから「Preferences」を選択
  2. 「General」タブで「Enter Play Mode Settings」を見つける
  3. 「Enter Play Mode Options (Experimental)」にチェックを入れる
  4. 必要に応じて「Reload Domain」と「Reload Scene」のオプションをONにする

基本的に、以下の2つの設定は「Enter Play Mode」オプションがOFFのときは自動でゲームをEditor上で実行するたびに行われている処理です。

  • Reload Domain: プレイモードに入る際に、すべてのスクリプトの静的変数やシングルトンがリセットされ、初期化されます。
  • Reload Scene: シーン全体をリロードし、シーン内のオブジェクトやコンポーネントの状態をリセットします。

なぜ早くなるのか

DomainリロードとSceneリロードの処理が省略されることで動作が高速化されます。

Reload Domain と Reload Scene 設定を無効にした場合の影響

ここで気になるのが、本当にリロードを省略していいのか」ということですが、まあ、特殊なことをしていなければ(それなりに設計していれば)、問題は起こりにくいと思います。

公式が上げている注意点としては、「Sceneリロード」を無効にすることで、ExecuteInEditModeやExecuteAlwaysの機能をつかているスクリプトを使用していると、不具合が出る可能性があるとのことです。

私の実体験として、「MRTK2」というライブラリを使った際に、「Enter Play Mode」をONに、SceneリロードをOFFにしていると実機の動きをエディタ上でエミュレートする機能が動かない現象に遭遇しました。

もし、想定している動作をしていないと感じた場合は、「Enter Play Mode」オプションの使用を控えることをおすすめします。

参考

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です