「スタートボタンを押したらステージへ」「ゲームオーバーになったらリザルトへ」——ゲームの流れは、シーンからシーンへの移動でできています。そしてこの移動、実装しようとすると「シーンが見つからないエラーが出る」「ロード中に画面が固まる」といった壁に当たりがちです。
Unityではシーン間の移動を SceneManager クラスで管理します。この記事では基本のロード方法から、フリーズを防いでロード画面を出すための非同期ロードまで、シーン遷移の必須知識を解説します。
この記事でわかること
- シーンをビルド設定に登録する理由と手順
LoadScene()によるシーン名/ビルドインデックスでのロードLoadSceneAsync()とロード画面(プログレスバー)の実装- 「progressが0.9で止まる」仕組みの正体
Sponsored
シーンをビルド設定に追加する
スクリプトからシーンをロードする前に、まず対象となるすべてのシーンをビルド設定に登録しておく必要があります。これを忘れると、エディタ上では動作しても、実際にゲームをビルドした際にシーンが見つからずエラーになってしまいます。
File > Build Settings...を選択してビルド設定ウィンドウを開きます。Scenes In Buildというリストが表示されます。- プロジェクトウィンドウから、ゲームで使用するすべてのシーンファイル(
.unity)をこのリストにドラッグ&ドロップします。
リストに追加されたシーンには、0, 1, 2... というビルドインデックスが割り振られます。このインデックス番号、またはシーンファイル名(拡張子なし)を使って、スクリプトからシーンをロードすることができます。
