protected bool CanLoadLevel() { BaseSceneState Next = base.NextState as BaseSceneState; BaseSceneState Current = base.CurrentState as BaseSceneState; return((Next.LevelEnum != null && (Current == null || Next.LevelEnum != Current.LevelEnum)) || base.ForceStateReload); }
//设置当前的状态 public void ChangeState(BaseSceneState state) { currentState.StateEnd(); //执行上一状态的end方法 currentState = state; //切换状态 asyncOperation = SceneManager.LoadSceneAsync(currentState.SceneName); //异步加载当前场景 isRunStart = false; //异步执行当前状态的Start方法 }
void SetSceneState(BaseSceneState sceneState) { if (m_state.GetESceneState() != sceneState.GetESceneState()) { //开始准备切换场景 m_bSceneLoaded = false; //清理当前场景 m_state.SceneStateEnd(); //设置新场景 m_state = sceneState; //加载场景 LoadScene(m_state.GetSceneName()); } }
protected virtual void Start() { LoadState(); GameObject instance = Instantiate(Resources.Load("Prefab/Scene/FadeCanvas")) as GameObject; m_fadeController = instance.GetComponent <FadeController>(); m_currentState = m_sceneStateList[0]; foreach (var state in m_sceneStateList) { state.Initialize(this); } m_currentState.OnStart(); }
public void SetState(BaseSceneState _state, string loadSceneName) { //载入场景 isLoad = true; runBegin = false; LoadScene(loadSceneName); //通知前一个State结束 if (m_State != null) { m_State.StateEnd(); } //设置新的状态 m_State = _state; }
public void ChangeState <T>() { foreach (var state in m_sceneStateList) { //Typeが違う if (state.GetType() != typeof(T)) { continue; } if (m_currentState) { m_currentState.OnRelease(); } m_currentState = state; m_currentState.OnStart(); } }
protected string LoadLevelName() { BaseSceneState Next = base.NextState as BaseSceneState; return(Next.LevelEnum.Name); }
public SceneController() { m_evtCtx = new GameEventContext(); m_state = new LoginSceneState(this); m_state.SceneStateBegin(); }