Exemplo n.º 1
0
        /// <summary>
        /// 浮动窗口显示的位置
        /// </summary>
        /// <param name="floattingWindew"></param>
        /// <param name="parentObject"></param>
        /// <param name="floattingWindewBaseUI"></param>
        Vector2 CreatePosition(RectTransform floattingWindew, RectTransform parentObject, EnumFloatingUIShowPosition floatingUIShowPosition)
        {
            Vector2 scope = Vector2.zero;

            switch (floatingUIShowPosition)
            {
            case EnumFloatingUIShowPosition.Top:
                //正上
                floattingWindew.pivot         = new Vector2(0.5f, 0f);;
                floattingWindew.localPosition = parentObject.localPosition + new Vector3(0, parentObject.rect.size.y / 2, 0);
                scope.x = floattingWindew.localPosition.x;
                scope.y = -floattingWindew.localPosition.y + -floattingWindew.rect.size.y;
                break;

            case EnumFloatingUIShowPosition.Below:
                // 正下
                floattingWindew.pivot         = new Vector2(0.5f, 1f);;
                floattingWindew.localPosition = parentObject.localPosition - new Vector3(0, parentObject.rect.size.y / 2, 0);
                scope.x = floattingWindew.localPosition.x;
                scope.y = -floattingWindew.localPosition.y + floattingWindew.rect.size.y;
                break;

            case EnumFloatingUIShowPosition.Left:
                //左
                floattingWindew.pivot         = new Vector2(1, 0);
                floattingWindew.localPosition = parentObject.localPosition - new Vector3(parentObject.rect.size.x / 2, parentObject.rect.size.y / 2, 0);
                scope.x = -floattingWindew.localPosition.x + floattingWindew.rect.size.x;
                scope.y = floattingWindew.localPosition.y + floattingWindew.rect.size.y;
                break;

            case EnumFloatingUIShowPosition.LeftTop:
                //左上
                floattingWindew.pivot         = new Vector2(1, 0);
                floattingWindew.localPosition = parentObject.localPosition - new Vector3(parentObject.rect.size.x / 2, -parentObject.rect.size.y / 2, 0);
                scope.x = -floattingWindew.localPosition.x + floattingWindew.rect.size.x;
                scope.y = floattingWindew.localPosition.y + floattingWindew.rect.size.y;
                break;

            case EnumFloatingUIShowPosition.LeftBelow:
                // 左下
                floattingWindew.pivot         = Vector2.one;
                floattingWindew.localPosition = parentObject.localPosition - new Vector3(parentObject.rect.size.x / 2, parentObject.rect.size.y / 2, 0);
                scope.x = -floattingWindew.localPosition.x + floattingWindew.rect.size.x;
                scope.y = -floattingWindew.localPosition.y + floattingWindew.rect.size.y;
                break;

            case EnumFloatingUIShowPosition.Right:
                //右
                floattingWindew.pivot         = Vector2.zero;
                floattingWindew.localPosition = parentObject.localPosition + new Vector3(parentObject.rect.size.x / 2, -parentObject.rect.size.y / 2, 0);
                scope.x = floattingWindew.localPosition.x + floattingWindew.rect.size.x;
                scope.y = floattingWindew.localPosition.y + floattingWindew.rect.size.y;
                break;

            case EnumFloatingUIShowPosition.RightTop:
                //右上
                floattingWindew.pivot         = Vector2.zero;
                floattingWindew.localPosition = parentObject.localPosition + new Vector3(parentObject.rect.size.x / 2, parentObject.rect.size.y / 2, 0);
                scope.x = floattingWindew.localPosition.x + floattingWindew.rect.size.x;
                scope.y = floattingWindew.localPosition.y + floattingWindew.rect.size.y;
                break;

            case EnumFloatingUIShowPosition.RightBelow:
                //右下
                floattingWindew.pivot         = new Vector2(0, 1);
                floattingWindew.localPosition = parentObject.localPosition - new Vector3(-parentObject.rect.size.x / 2, parentObject.rect.size.y / 2, 0);
                scope.x = floattingWindew.localPosition.x + floattingWindew.rect.size.x;
                scope.y = -floattingWindew.localPosition.y + floattingWindew.rect.size.y;
                break;

            default:
                break;
            }
            return(scope);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 浮动窗口显示的位置
        /// </summary>
        /// <param name="floattingWindew"></param>
        /// <param name="parentObject"></param>
        /// <param name="floattingWindewBaseUI"></param>
        Vector2 CreatePosition(RectTransform floattingWindew, RectTransform parentObject, BaseUI floattingWindewBaseUI)
        {
            EnumFloatingUIShowPosition floatingUIShowPosition = floattingWindewBaseUI.SetUIType._FloatingUIShowPosition;

            return(CreatePosition(floattingWindew, parentObject, floatingUIShowPosition));
        }