using CG.UTility; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; /******************************************************************************** *Create By CG *Function 状态模式对应上下文 *********************************************************************************/ namespace CG.Framework { public class StateContext { private State _state; /// /// 设置指定状态 /// /// public void SetState(State state, string childrenPanelName = null) { _state = state; string curSceneName = UnityEngine.SceneManagement.SceneManager.GetActiveScene().name; if (curSceneName.Equals(_state._SceneName)) { UI_Manage.Instance.HidePanelGroup(UIGroup.Main); UI_Manage.Instance.HidePanelGroup(UIGroup.Tip); _state.EnterState(); } else { //LoadScenes.Instance.LoadScene(_state._SceneName, _state.EnterState); LoadScenesAsyncNoPanel.Instance.LoadSceneAsync(_state._SceneName, () => { UI_Manage.Instance.ClearPanelGroup(UIGroup.Main); UI_Manage.Instance.ClearPanelGroup(UIGroup.Tip); _state.EnterState(); }); } CG.UTility.PopUpMng._TriAble = true; } public Type GetState() { return _state.GetType(); } } }