public void OpenWin(UIPanelType type, Vector3 pos, bool closeOther = false) { BasePanel panel = UIPanelRegister.GetPanel(type); if (panelStack.Count != 0) { BasePanel top = null; if (closeOther) { top = panelStack.Pop(); } else { top = panelStack.Peek(); } if (null != top) { top.OnExit(); } } panel.transform.localPosition = pos; panel.OnEnter(); panelStack.Push(panel); }
public void PopPanel() { if (panelStack == null) { panelStack = new Stack <BasePanel>(); } if (panelStack.Count <= 0) { return; } //退出栈顶面板 BasePanel topPanel = panelStack.Pop(); topPanel.OnExit(); //恢复上一个面板 if (panelStack.Count > 0) { BasePanel panel = panelStack.Peek(); panel.OnResume(); } }