[Unity] シーン切り替え時間を測定してみる

Unityでのシーン切り替えは重いという言葉をよく耳にします。
しかし、どこまで重いのかについては根拠となる情報が存在せず・・・

今回はひとつのGameObjectのみが存在したシーンを再読み込みすることで切り替えにかかる時間を計測してみました。

以下計測用スクリプトです。

シーンには以下のようにひとつのMainCameraオブジェクトだけが存在している状態です。

scene-time1

以下実行結果です。

・QualityをGoodにした場合
scene-time2

・QualityをFastestにした場合
scene-time3

このことから、シーン切り替えにかかる時間はTime.deltaTimeすなわちフレーム間の時間にほぼ等しいことがわかります。
今回はUpdateとAwakeメソッドの中で開始・終了を計測しているために1フレーム分の時間がかかっていると思われます。(あくまで推測です)
しかし、どのみち次にレンダリングされるタイミングは次回のUpdateが呼び出されるタイミングであることを考えると、1フレーム分という時間は許容範囲のように思えます。

フレーム間隔を除いたシーン切り替え時間は0.001msにも達していない結果となりました。

大量のGameObjectが存在している場合はもっと時間がかかるかもしれませんが、シーン切り替えとは別物と考えられるでしょう。
果たしてシーン切り替えとプレハブによる切り替えのどちらが速いのか・・・
これについてはまた後日比較検証を行いたいと思います。