ゲーム全体を管理するGameManagerの作成
ゲーム全体を管理するGameManagerを作成します。
GameManagerオブジェクトを作り、GameManagerスクリプトを作ってアタッチします。
GameManager.cs
using UnityEngine.SceneManagement; public class GameManager : MonoBehaviour { public static GameManager instance; private void Awake() { if (instance == null) { instance = this; DontDestroyOnLoad(this); } else { Destroy(gameObject); } } public static void LoadScene(string sceneName) { SceneManager.LoadScene(sceneName); } }
シーンの切り替え処理ができるように名前空間 UnityEngine.SceneManagement を追加します。
Awakeメソッドを追加し、GameManagerをstaticな変数instanceに代入しています。
これでどのクラスからでもGameManagerを参照できるようになります。
ゲームオーバーになってタイトルシーンにもどってきたときなど、GameManagerオブジェクトが重複したときは破棄するようにしています。
(instanceに値が入っているということはGameManagerがすでにインスタンス化されていることになる)
シーンの切り替えをするメソッドはstaticなメソッドにしておき、GameManagerがインスタンス化されていなくても使えるようにしておきます。