diff --git a/ProjectNLD/Assets/Code/Scripts/Framework/UI/UIEnumDefine.cs b/ProjectNLD/Assets/Code/Scripts/Framework/UI/UIEnumDefine.cs index f04bf781aef..a03c2afc65f 100644 --- a/ProjectNLD/Assets/Code/Scripts/Framework/UI/UIEnumDefine.cs +++ b/ProjectNLD/Assets/Code/Scripts/Framework/UI/UIEnumDefine.cs @@ -8,7 +8,7 @@ public enum UIWindowLayer ForeGround, // Tips, //提示层级 Guide,//新手引导层 - Waiting, //菊花层级 + Waiting, //菊花, 断线,错误等 Max //最高层级 } diff --git a/ProjectNLD/Assets/Code/Scripts/Framework/UI/UIManager.Window.cs b/ProjectNLD/Assets/Code/Scripts/Framework/UI/UIManager.Window.cs index 933bddfe4f5..0d3651907d0 100644 --- a/ProjectNLD/Assets/Code/Scripts/Framework/UI/UIManager.Window.cs +++ b/ProjectNLD/Assets/Code/Scripts/Framework/UI/UIManager.Window.cs @@ -51,14 +51,14 @@ public partial class UIManager _WindowMeta(UINameConst.UI_VehicleChoose, UIWindowLayer.Normal); _WindowMeta(UINameConst.UI_VehicleCultivate, UIWindowLayer.Normal); _WindowMeta(UINameConst.UI_VehicleLevelUp, UIWindowLayer.Normal); - _WindowMeta(UINameConst.UI_Update, UIWindowLayer.Max); - _WindowMeta(UINameConst.UI_LogIn, UIWindowLayer.Max); + _WindowMeta(UINameConst.UI_Update, UIWindowLayer.Tips); + _WindowMeta(UINameConst.UI_LogIn, UIWindowLayer.Normal); _WindowMeta(UINameConst.UI_LoginTips, UIWindowLayer.Max); - _WindowMeta(UINameConst.UI_Loading, UIWindowLayer.Max); - _WindowMeta(UINameConst.UIReconnect, UIWindowLayer.Max); - _WindowMeta(UINameConst.UIReconnectConfirm, UIWindowLayer.Max); - _WindowMeta(UINameConst.UIReconnectNotice, UIWindowLayer.Max); - _WindowMeta(UINameConst.UIBackReturn, UIWindowLayer.Max); + _WindowMeta(UINameConst.UI_Loading, UIWindowLayer.Waiting); + _WindowMeta(UINameConst.UIReconnect, UIWindowLayer.Waiting); + _WindowMeta(UINameConst.UIReconnectConfirm, UIWindowLayer.Waiting); + _WindowMeta(UINameConst.UIReconnectNotice, UIWindowLayer.Waiting); + _WindowMeta(UINameConst.UIBackReturn, UIWindowLayer.Waiting); _WindowMeta(UINameConst.UI_Email, UIWindowLayer.Normal); _WindowMeta(UINameConst.UIGiftCodeAwards, UIWindowLayer.Normal); _WindowMeta(UINameConst.UITask, UIWindowLayer.Normal); @@ -67,7 +67,7 @@ public partial class UIManager _WindowMeta(UINameConst.UI_Shop, UIWindowLayer.Normal); _WindowMeta(UINameConst.UI_Purchase, UIWindowLayer.Normal); _WindowMeta(UINameConst.UI_GetItemWindow, UIWindowLayer.Normal); - _WindowMeta(UINameConst.UINoticeOne, UIWindowLayer.Max); + _WindowMeta(UINameConst.UINoticeOne, UIWindowLayer.Tips); _WindowMeta(UINameConst.UI_PVPMain,UIWindowLayer.Normal); } diff --git a/ProjectNLD/Assets/Code/Scripts/Framework/UI/UIManager.cs b/ProjectNLD/Assets/Code/Scripts/Framework/UI/UIManager.cs index 5d73887fec4..5d04801767a 100644 --- a/ProjectNLD/Assets/Code/Scripts/Framework/UI/UIManager.cs +++ b/ProjectNLD/Assets/Code/Scripts/Framework/UI/UIManager.cs @@ -293,6 +293,20 @@ public partial class UIManager : Singlenton, IInitable } } + + public void ForeachUI(Action action) + { + var windowList = mMemoryWindows.ToList(); + foreach (var kv in windowList) + { + var window = kv.Value; + if (window != null) + { + action?.Invoke(kv.Value); + } + } + } + public void CloseAllUI(UIWindowCloseType closeType ) { var windowList = mMemoryWindows.ToList(); diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateLevel.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateLevel.cs index 1c5ab9fcead..1e87fd8a089 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateLevel.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateLevel.cs @@ -22,7 +22,6 @@ public class GameStateLevel : IState public void OnExit() { - UIManager.Instance.CloseAllUI(UIWindowCloseType.HideAndDestroy); LevelManager.Instance.UnloadLevel(); } } diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateMainScene.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateMainScene.cs index 9071c7f13f0..34a8fab9d67 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateMainScene.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateMainScene.cs @@ -20,6 +20,5 @@ public class GameStateMainScene : IState public void OnExit() { - UIManager.Instance.CloseAllUI(UIWindowCloseType.HideAndDestroy); } } \ No newline at end of file diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateManager.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateManager.cs index 99cedf0bc48..93bb6c00fea 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateManager.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateManager.cs @@ -21,8 +21,19 @@ public class GameStateManager : Singlenton , IUpdatable, IInit _stateMachine = null; } - public void ChangeState(IState state) + public async void ChangeState(IState state) { - _stateMachine.ChangeState(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); + } } } diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateStart.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateStart.cs index 1fa26629073..a4ea30c303f 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateStart.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateStart.cs @@ -21,6 +21,5 @@ public class GameStateStart : IState public void OnExit() { - UIManager.Instance.CloseAllUI(UIWindowCloseType.HideAndDestroy); } } diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateStory.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateStory.cs index 57a9373dde5..a1e839ddece 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateStory.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateStory.cs @@ -72,7 +72,6 @@ namespace Code.Scripts.Gameplay.Game public void OnExit() { - UIManager.Instance.CloseAllUI(UIWindowCloseType.HideAndDestroy); EventManager.Instance.Unregister(EventManager.EventName.STORY_CLICK_SKIP, _OnRecvExit); // TODO: 卸载场景 StoryManager.instance.DisposeForGame(); diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/Login/UILoginController.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/Login/UILoginController.cs index d2ab7662881..9f4152fa4be 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/Login/UILoginController.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/Login/UILoginController.cs @@ -85,7 +85,6 @@ public class UILoginController : UIWindow { PlayerPrefs.SetString("LoginAccount", _Input.text); Gameplay.Net.Actor.Instance.StartLogin(NLDPB.LoginType.Phxh, _Input.text); - CloseWindow(); } diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/Login/UI_LogInController.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/Login/UI_LogInController.cs index 5d1d0dc2768..58127471c2a 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/Login/UI_LogInController.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/Login/UI_LogInController.cs @@ -192,7 +192,6 @@ public class UI_LogInController : UIWindow PlayerPrefs.SetString("LoginAccount", InputField_Pass.text); Gameplay.Net.Actor.Instance.StartLogin(NLDPB.LoginType.Phxh, InputField_Pass.text); - CloseWindow(); } //invoke when open window protected override void OnOpenWindow()