Unity 2019.3 Enter Play Mode Optionsを設定すると爆速になった (条件あり)
こちらの記事でEnter Play Mode Optionsを設定すると速くなると書いてあったので試してみました!
環境
- 2019 iMac
- Unity 2019.3.2
機能
2019.3から Enter Play Mode Optionsが設定できるようになり、
- スクリプトの状態のリセット(Domain Reload)
- シーンの再ロード(Scene Reload)
の2つが設定できるようになりました。
それぞれの詳細機能はドキュメントに書いてありました。 (英語しかなかった・・・)
Unity - Manual: Configurable Enter Play Mode
注意事項
Domain Reloadの設定はstatic変数がリセットされないので気をつけないといけないみたいです。
回避方法はここに載ってました (英語しかなかった・・・)
Unity - Manual: Domain Reloading
Scene Reloadの設定はプロファイルとかビルドとかで計測する場合には当然ですが、正確な時間が計測できないとのことでした。
Unity - Manual: Scene Reloading
あと両者に共通することですが、まだ実験段階の機能なので、どのように変更が将来加えられるかわかりません。
設定方法
Edit > Project Settingから
Editor > Enter Play Mode Settings
一番速くておすすめ設定
Scene Reload設定のみチェック入れた状態がとても速くておすすめです。
シーンのリロードにチェックをいれないと、シーンのリロードが行われないので、途中から始まるので結構不便です。(個人の感想)
Domain Reloadは行わず、シーンのリロードは行う設定が、とても速くて、使い勝手がよかったです。(今までの操作感と同じ)
ただドキュメントにある通り、速くなる条件はscriptを編集していない時です。
scriptを編集してしまうと、コンパイルが実行されるので、そのコンパイル時間は省略できません。
速くなる状況は例えば
- UnityEditorでGUIを編集して、確認する (scriptを編集していないため)
- 停止したあともう一回再生する (scriptを編集していないため)
のような状況が考えられます。
注意点
Domain Reloadのチェックをoffにしているとスクリプトの状態のリセットが行われないので、static変数を初期化する処理を自分でつけないといけないです。
そして、ライブラリについても、アップデートして、対応しているversionに更新しないといけないです。
Enter Play Mode Optionsを設定した時にDoTweenがうまく動作しない時 - TAKOYAKING’s blog
感想
もう速すぎでびっくりしました。最大で 50% ~ 90%短縮と書いてありましたが、体感は99%短縮と言っても過言ではないくらいでした。
とりあえず速すぎたので、再生ボタンを連打しまくるということも、この設定をOnにしていれば楽勝です。
よく再生ボタンを2回連続で押してしまって、微妙にイラっとくることもこれで無くなりそうです。
Unity 2019.3に上げてから少し遅くなり、困っていましたが、これでかなり解決しそうです。