using Framework; using PhxhSDK; public class GameStateManager : Singlenton , IUpdatable, IInitable { private StateMachine _stateMachine; public void Update(float deltaTime) { _stateMachine.Update(deltaTime); } public void Init() { _stateMachine = new StateMachine(); } public void Release() { _stateMachine = null; } public async void ChangeState(IState state) { var ui = await UIManager.Instance.OpenWindow(UINameConst.UI_Loading) as UI_LoadingController; if (ui != null) { UIManager.Instance.ForeachUI(delegate(UIWindow window) { if (window != null && window != ui) { window.CloseWindow(UIWindowCloseType.HideAndDestroy); } }); _stateMachine.ChangeState(state); } } }