コード例 #1
0
    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;
    }
コード例 #2
0
    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);
            }
        }
    }
コード例 #3
0
 /// <summary>
 /// ゲームの状態を更新する.
 /// </summary>
 /// <param name="nextState">Next state.</param>
 public void ChangeMainState(EMainState nextState)
 {
     NextMainState = nextState;
 }