void Awake() { if (this != Instance) { Destroy(gameObject); return; } Objects.Add(EMainState.InTitle, InTitle); Objects.Add(EMainState.InGame, InGame); Objects.Add(EMainState.InGameOver, InGameOver); // 最初のステートは意味のないものにする. MainState = EMainState.MaxMainState; }
void Update() { if (MainState != NextMainState) { MainState = NextMainState; //使用しないオブジェクトを非アクティブに. foreach (GameObject obj in Objects.Values) { obj.SetActive(false); } //現在のステートのときにオブジェクトを使用する場合はアクティブに. if (Objects.ContainsKey(MainState)) { GameObject tmp = Objects[MainState]; tmp.SetActive(true); } } }
/// <summary> /// ゲームの状態を更新する. /// </summary> /// <param name="nextState">Next state.</param> public void ChangeMainState(EMainState nextState) { NextMainState = nextState; }