SceneManagerとは
Unityがシーンをコントロールするclassを用意してくれています.
それが UnityEngine.SceneManagement classです.
-SceneManager.Load シーンを追加
-SceneManager.Unload シーンを削除
などを用いてシーンを切り替えます.
シーンを整理
A:バトルフィールド (BattleField) ・・・常時表示
B:タイトルシーン (Title)
C:ゲームプレイシーン (Play)
D:リザルトシーン (Result)
今回はシンプルに4つのシーンを組み合わせで,ゲームは構築されているとします.
Aのバトルプレイスは常時表示されており,それに載せるシーンが B → C → D 入れ替わっていくといった感じです.
具体例
現在,BattleFieldと,Titleシーンがあるところに,Playのシーンを追加する例を紹介します.
using UnityEngine;
using UnityEngine.SceneManagement; //デフォルトでは記載されていないので追加する.
void ChangeScene()
{
//Playシーンの追加
SceneManager.LoadScene("Play", LoadSceneMode.Additive);
//Titleシーンの削除
SceneManager.UnloadSceneAsync("Title");
}
LoadSceneMode.Additive は現在,A,Bのシーンがあるところに,Playのシーンを追加するといった状況の際につけます. 多くの場合で,このような状況だとは思われるので,LoadSceneMode.Additiveまでセットで覚えましょう.(反対に何もシーンがないところに,.Additiveでシーンを加えようとするとエラーになります.)