Пример #1
0
    /// <summary>
    /// 设置当前状态
    /// </summary>
    /// <param name="newState"></param>
    public void SetState(SceneType newState)
    {
        if (m_Dic.ContainsKey(newState))
        {
            if (m_CurrentSceneState != null)
            {
                m_CurrentSceneState.OnExit();
            }

            m_CurrentSceneState = m_Dic[newState];
            m_CurrentSceneState.OnEnter();
        }
    }
Пример #2
0
 /// <summary>
 /// 场景加载完成回调
 /// </summary>
 /// <param name="arg0"></param>
 /// <param name="arg1"></param>
 private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
 {
     if (m_CurrentSceneState is GameStateLoading)
     {
         m_CurrentSceneState.OnExit();
     }
     if (scene.name.Equals("Scene_Loading"))
     {
         m_CurrentSceneState = m_Dic[SceneType.Loading];
     }
     else
     {
         m_CurrentSceneState = m_Dic[m_NextType];
     }
     m_CurrentSceneState.OnEnter();
 }
Пример #3
0
    void Start()
    {
        if (Instance != null)
        {
            Destroy(this.gameObject);
        }
        Instance = this;

        _saveManager.Init(this);
        _uiManager.Init(this);
        _cameraManager.Init(this);
        _levelManager.Init(this);

        _gameState = new StartState(this);
        _gameState.OnEnter();

        this.DelayedAction(() =>
        {
        }, 2.0f);
    }
Пример #4
0
 public void ChangeGameState(GameStateBase gamestate)
 {
     _gameState.OnExit();
     _gameState = gamestate;
     _gameState.OnEnter();
 }