はじめに
Unityエディタ上でゲームを再生させると、実際に始まるまで待ち時間が長いと思ったことはありませんか?
この記事では、待ち時間を短縮して高速化させる方法について紹介します。
エディタ再生モードのしくみ
Unityのエディタでの再生モードは、以下のような内部処理によって実現されています。
- コンパイル:再生モードに入る前に、スクリプトの変更があった場合はコンパイルされます。このとき、コンパイルエラーがある場合は再生できません。スクリプトやシーンの読み込みに待ち時間が多くかかっています。
- シーンの保存:再生モードに入る前に、現在のシーンが保存されます。再生モード中に変更を加えた場合、元のシーンを復元するためです。
- ゲームオブジェクトの複製:シーン内の全てのゲームオブジェクトが複製され、再生用のシーンが作成されます。このとき、シーンに含まれるスクリプトのコンポーネントも複製されます。
- 再生開始:再生用のシーンが開始され、ゲームが再生されます。このとき、Unityは通常のゲームプレイと同様に、フレームレートの制御やスクリプトの実行、物理シミュレーションの更新などを行います。
- 再生終了:再生モードを終了すると、再生用のシーンが削除され、元のシーンが復元されます。
この中で、コンパイルでのスクリプトの読み込みに多くの時間がかかっています。ゲームが大規模になり、スクリプトやシーンが複雑になるほど時間がかかります。
コンパイル時間を短くしたい!
コンパイル時間の短縮設定
Edit > ProjectSettings…を開きます。
Editor > EnterPlay Mode Optionsにチェックを入れます。その下にReload DomainとReload Sceneがあります。
- Reload Domain スクリプトの読み込み
- Reload Scene シーン(ヒエラルキー)の読み込み
チェックを入れると、読み込みを行うようになります。特に変わらない場合はチェックを外しておきましょう。
変わらなければ、毎回読み込む必要ないもんね!
おわりに
エディタでの再生を高速化する方法でした。デバッグ時にパラメーターの調整や動作確認する時に使用して、問題があったらチェックを入れて読み込み直すのが良さそうです。