Unity ゲーム再生までの時間を短くするEnter Play Mode

Unity上で開発中のゲームを再生すると、始まるまでにメチャクチャ遅かったりしませんか?
そういう時に再生までの時間を短くする方法を紹介したいと思います。
注意点も書いておきます。
今回バージョンはUnity2012.2.1f1です。

Enter Play Mode

やり方はとても簡単です。
Edit > Project Settings > Editor > Enter Play Mode Optionsにチェックを入れれば終わりです。
Enter Play Mode OptionsはEditorの下の方にあります。

チェックありとなしでどれくらい速さが違うのか実験してみます。
まずはチェックなしです。

続いてチェックありです。

チェックありだとすぐにゲームが起動しキャラクターのアニメーションが始まりました。
これはどうして早くなるかというと、チェックの下にある「Reload Domain」「Reload Scene」が関係しています。

Reload Domain

Reload Domainはスクリプトの状態をリセットしてくれるものだそうです。
これをオフにすることで毎回リセットする処理を省いてゲームの再生が早くなるそうです。

Reload Scene

先程のReload Domainがスクリプトをリセットするのに対し、こちらは再生すると既存のゲームオブジェクトをすべて破棄して、ディスクからシーンを再ロードするそうです。
シーンが複雑になればなるほどこの時間が長くなります。
なのでオフにすることでゲームの再生までの時間が短縮されます。

注意点

staticな値がリセットされない

Reload Domainはスクリプトの初期化を行ってくれているわけですが、それをオフにすることでstaticな値がリセットされなくなります。
具体的に実験してみます。
スペースキーを押したらstaticのintの値が増えていくようにしてみます。

このようなコードがあった場合、Reload Domainがオフだったらどのような挙動になるでしょうか。
ゲーム再生 > スペースキー押す > ゲーム停止 > ゲーム再開 > スペースキー押す
この流れでログを確認してみます。

いかがでしょうか?停止して再開してもcountの値はリセットされていないのがわかるかと思います。
これを回避するには[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]を使うと良いです。
ゲームを再生するときに指定した関数を呼ぶことができます。

これでInitCountという関数が起動時に呼ばれcountを0にしています。
実験してみます。

無事にstaticな値がリセットされているのが確認できました。
注意点として起動時に指定する関数はstatic関数にしてください。

staticなイベントがリセットされない

Unityではstaticイベントが多数あります。
Reload Domainが有効な場合(通常)、ゲーム再生が終了したタイミングで自動的に破棄されますが、Reload Domainがオフだと破棄されません。
ゲーム再生終了時のイベントApplication.quittingに処理を登録して実験してみます。

これで実験してみます。

ゲーム再生停止を繰り返すたびにApplication.quittingに処理が追加されていき、ログに「ゲーム終わり」が一つずつ増えていくのがわかります。
これをリセットするには再生時にRuntimeInitializeOnLoadMethodで設定した関数を呼び出してイベントを破棄することで解消できます。
具体的にはこんな感じです。

start関数内で Application.quitting += _quitで処理を加えているのとは逆にApplication.quitting -= _quitで登録している処理を破棄しています。

実際に試し見てます。

このような感じで終了時のイベントの処理は破棄され、一度だけ実行されるのが確認できるかと思います。

このような注意点がありますが、Enter Play Modeを使うことでとても快適にUnityエディタ上でゲームを再生できます。

Unity開発おすすめPC

NEXTGEAR JG-A5G5A

NEXTGEAR JG-A5G5A
OS : Windows 11 Home 64ビット
CPU : AMD Ryzen™ 5 4500 プロセッサー
グラフィックス : NVIDIA® GeForce RTX™ 3050
メモリ標準容量 : 16GB (8GB×2 / デュアルチャネル)
M.2 SSD : 1TB (NVMe)
保証期間 : 3年間センドバック修理保証・24時間×365日電話サポート
価格:119,900円(税込)~
NEXTGEAR JG-A5G5A 詳細

Lenovo LOQ Essential Gen 9 - ルナグレー

Lenovo LOQ Essential Gen 9 - ルナグレー
OS : Windows 11 Home 64ビット
CPU : インテル® Core™ i7-12650HX
グラフィックス : NVIDIA® GeForce RTX™ 4050 Laptop GPU 6GB GDDR6
メモリ標準容量 : 16 GB DDR5-4800MHz
ストレージ : 512 GB SSD M.2 2242 PCIe-NVMe Gen4 QLC
ディスプレイ :15.6" FHD液晶 (1920 x 1080) IPS, 光沢なし, マルチタッチ非対応, 100%sRGB, 300 nit, 144Hz
内蔵カメラ :720p HDカメラ (プライバシーシャッター付)
無線 :Wi-Fi 6対応 (IEEE 802.11ax/ac/a/b/g/n準拠) 2x2 & Bluetooth®
保証期間 : 1 年間 Legion Ultimate Support
価格:¥149,820 税込・送料無料
Lenovo LOQ Essential Gen 9 - ルナグレー 詳細

【MDT46T144】

【MDT46T144】
CPU : Intel® Core i5 14400F
グラフィックス : RTX 4060 Ti
メモリ標準容量 : 16GB
ストレージ :500GB
保証期間 : 通常1年保証(無償1年)
価格:169,800円
【MDT46T144】 詳細

LOQ Tower 17IRR9 :カスタマイズモデル

LOQ Tower 17IRR9 :カスタマイズモデル
OS : Windows 11 Home 64ビット
CPU : インテル® Core™ i5-14400F プロセッサー
グラフィックス : NVIDIA® GeForce RTX™ 3050 6GB GDDR6
メモリ標準容量 : 16 GB DDR5-4800MHz (UDIMM) - (2 x 8 GB)
ストレージ : 512 GB SSD M.2 2280 PCIe-NVMe Gen4 TLC
保証期間 : 1 年間 Legion Ultimate Support
価格:¥109,450 税込・送料無料
LOQ Tower 17IRR9 :カスタマイズモデル 詳細

NEXTGEAR JG-A5G60(ホワイトカラーモデル)

NEXTGEAR JG-A5G60(ホワイトカラーモデル)
OS : Windows 11 Home 64ビット
CPU : AMD Ryzen™ 5 4500 プロセッサー
グラフィックス : NVIDIA® GeForce RTX™ 4060
メモリ標準容量 : 16GB (8GB×2 / デュアルチャネル)
M.2 SSD : 1TB (NVMe)
保証期間 : 3年間センドバック修理保証・24時間×365日電話サポート
価格:137,500円(税込)~
NEXTGEAR JG-A5G60(ホワイトカラーモデル) 詳細

NEXTGEAR JG-A5G60(1周年記念モデル)

NEXTGEAR JG-A5G60(1周年記念モデル)
OS : Windows 11 Home 64ビット
CPU : AMD Ryzen™ 5 4500 プロセッサー
グラフィックス : NVIDIA® GeForce RTX™ 4060
メモリ標準容量 : 16GB (8GB×2 / デュアルチャネル)
M.2 SSD : 1TB (NVMe)
保証期間 : 3年間センドバック修理保証・24時間×365日電話サポート
価格:139,900円(税込)~
NEXTGEAR JG-A5G60(1周年記念モデル) 詳細

G TUNE FG-A7A7X

G TUNE FG-A7A7X
OS : Windows 11 Home 64ビット
CPU : AMD Ryzen™ 7 9800X3D プロセッサ
グラフィックス : AMD Radeon™ RX 7700 XT
メモリ標準容量 : 32GB (16GB×2 / デュアルチャネル
M.2 SSD : 2TB (NVMe Gen4×4)
ドライブ仕様 :DVDスーパーマルチドライブ
無線 :Wi-Fi 6E( 最大2.4Gbps )対応 IEEE 802.11 ax/ac/a/b/g/n準拠 + Bluetooth 5内蔵
保証期間 : 3年間センドバック修理保証・24時間×365日電話サポート
価格:379,800円(税込)~
G TUNE FG-A7A7X 詳細

関連記事

0
Would love your thoughts, please comment.x
()
x
セール中!
Unity3D

簡単にできる3Dゲーム開発

アバター制作から3Dゲームの完成まで学べる!