Example #1
0
        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);
        }
Example #2
0
        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();
            }
        }