예제 #1
0
        /// <summary>
        /// 退出指定UI并显示其他已隐藏UI
        /// </summary>
        /// <param name="uIName"></param>
        private void ExitUIFormsAndDisplayOther(string uIName)
        {
            BaseUI baseUI = null;

            if (string.IsNullOrEmpty(uIName))
            {
                return;
            }

            dicCurrentShowUIForms.TryGetValue(uIName, out baseUI);
            if (baseUI == null)
            {
                return;
            }

            // 将当前UI状态设置为隐藏,并从显示集合中 移除当前窗体
            baseUI.Hiding();
            dicCurrentShowUIForms.Remove(uIName);

            // 将其他窗体重新显示出来
            foreach (var item in dicCurrentShowUIForms.Values)
            {
                item.Redisplay();
            }
            foreach (var item in stackCurrentUIForm)
            {
                item.Redisplay();
            }
        }
예제 #2
0
        /// <summary>
        /// 退出指定UI
        /// </summary>
        /// <param name="UIname"></param>
        private void ExitUIForm(string uIName)
        {
            BaseUI baseUI = null;

            // 如果"当前显示的UI"不包含这个UI ,就直接返回
            dicCurrentShowUIForms.TryGetValue(uIName, out baseUI);
            if (baseUI == null)
            {
                return;
            }
            // 隐藏UI 并从"当前显示的UI"集合中移除UI
            baseUI.Hiding();
            dicCurrentShowUIForms.Remove(uIName);
        }
예제 #3
0
        /// <summary>
        /// (反向切换UI) 窗体出站逻辑
        /// </summary>
        private void PopUIForm(string uIName)
        {
            if (stackCurrentUIForm.Count >= 2)
            {
                BaseUI topUIForm = stackCurrentUIForm.Pop();
                topUIForm.Hiding();

                BaseUI enxtUIform = stackCurrentUIForm.Peek();
                enxtUIform.Redisplay();
            }
            else if (stackCurrentUIForm.Count == 1)
            {
                BaseUI topUIForm = stackCurrentUIForm.Pop();
                topUIForm.Hiding();
            }
        }
예제 #4
0
        /// <summary>
        /// 浮动窗口打开
        /// </summary>
        /// <param name="UIname"></param>
        /// <param name="vector"></param>
        void FloatingUIFormsShow(string UIname)
        {
            BaseUI        baseUIForm;
            GameObject    parentObj           = EventSystem.current.currentSelectedGameObject;
            RectTransform parentRectTransform = parentObj.gameObject.GetComponent <RectTransform>();

            if (FloatingUIFormsObject != null)
            {
                FloatingUIFormsObject.Hiding();
                FloatingUIFormsObject = null;
            }

            dicALLUIForm.TryGetValue(UIname, out baseUIForm);
            if (baseUIForm != null)
            {
                FloatingUIFormsObject = baseUIForm;
                RectTransform rectTran = FloatingUIFormsObject.gameObject.GetComponent <RectTransform>();
                Vector2       scope    = CreatePosition(rectTran, parentRectTransform, FloatingUIFormsObject);
                scope = new Vector2(Mathf.Abs(scope.x), Mathf.Abs(scope.y));
                if (canvasScope.x < scope.x || canvasScope.y < scope.y)
                {
                    switch (FloatingUIFormsObject.SetUIType._FloatingUIShowPosition)
                    {
                    case EnumFloatingUIShowPosition.Top:
                        CreatePosition(rectTran, parentRectTransform, EnumFloatingUIShowPosition.Below);
                        break;

                    case EnumFloatingUIShowPosition.Below:
                        CreatePosition(rectTran, parentRectTransform, EnumFloatingUIShowPosition.Top);
                        break;

                    case EnumFloatingUIShowPosition.Left:
                        CreatePosition(rectTran, parentRectTransform, EnumFloatingUIShowPosition.Right);
                        break;

                    case EnumFloatingUIShowPosition.LeftTop:
                        CreatePosition(rectTran, parentRectTransform, EnumFloatingUIShowPosition.RightBelow);
                        break;

                    case EnumFloatingUIShowPosition.LeftBelow:
                        CreatePosition(rectTran, parentRectTransform, EnumFloatingUIShowPosition.RightTop);
                        break;

                    case EnumFloatingUIShowPosition.Right:
                        CreatePosition(rectTran, parentRectTransform, EnumFloatingUIShowPosition.Left);
                        break;

                    case EnumFloatingUIShowPosition.RightTop:
                        CreatePosition(rectTran, parentRectTransform, EnumFloatingUIShowPosition.LeftBelow);
                        break;

                    case EnumFloatingUIShowPosition.RightBelow:
                        CreatePosition(rectTran, parentRectTransform, EnumFloatingUIShowPosition.LeftTop);
                        break;

                    default:
                        break;
                    }
                }
                FloatingUIFormsObject.Display();
            }
        }