コード例 #1
0
ファイル: UListPopup.cs プロジェクト: zwong91/Titan
 public UPopupMenuUpdateParam(Transform _tfTarget      = null, Camera _camUI = null, Canvas _canvasRoot = null,
                              TipPosition _eTipPostion = TipPosition.MouseTopRightCorner, bool _bOverflowCheck = true,
                              Sprite _sprModalSprite   = null, Color?_colorModalColor = null, Transform _tfPopupView = null, bool _bUseModal = false, UnityAction _actionModalCilck = null)
 {
     PopupTarget        = _tfTarget;
     UICamera           = _camUI;
     RootCanvas         = _canvasRoot;
     PopupTipPostion    = _eTipPostion;
     PopupOverflowCheck = _bOverflowCheck;
     PopupModalSprite   = _sprModalSprite;
     PopupModalColor    = _colorModalColor;
     PopupView          = _tfPopupView;
     IsModalUsed        = _bUseModal;
     ModalClickAction   = _actionModalCilck;
 }
コード例 #2
0
        /// <summary>
        /// 不带图标悬浮提示
        /// </summary>
        /// <param name="Owner">关联控件</param>
        /// <param name="text">提示文本</param>
        /// <param name="title">提示标题</param>
        /// <param name="IsBallon">是否气泡</param>
        /// <param name="position">显示位置</param>
        /// <param name="width">提示宽度</param>
        public void Show(Control Owner, string text, string title, bool IsBallon, TipPosition position, int width)
        {
            try
            {
                if (!wsnToolTip.IsVisible())
                {
                    Reset();
                    pOwner = Owner.Handle;

                    wsnToolTip.BallonStyle    = IsBallon;
                    wsnToolTip.UseVisualStyle = true;
                    wsnToolTip.MultiLine      = true;
                    wsnToolTip.MaximumWidth   = width;
                    wsnToolTip.Opacity        = 0.85F;
                    wsnToolTip.CloseButton    = false;
                    wsnToolTip.ShowAlways     = true;
                    wsnToolTip.AutoPopDelay   = 5000;
                    wsnToolTip.Position       = position;

                    if (IsBallon)
                    {
                        wsnToolTip.CustomStyle        = TipStyle.Gradient;
                        wsnToolTip.GradientType       = GradientStyle.VerticalTube;
                        wsnToolTip.GradientStartColor = Color.White;
                        wsnToolTip.GradientEndColor   = Color.FromArgb(0xC0D8DD);
                    }

                    wsnToolTip.SetToolTip(Owner, text);

                    if (title != null)
                    {
                        wsnToolTip.SetTipTitle(pOwner, title);
                    }
                }
            }
            catch
            {
                throw;
            }
        }
コード例 #3
0
        /// <summary>
        /// 不带图标悬浮提示
        /// </summary>
        /// <param name="Owner">关联控件</param>
        /// <param name="text">提示文本</param>
        /// <param name="title">提示标题</param>
        /// <param name="IsBallon">是否气泡</param>
        /// <param name="position">显示位置</param>
        /// <param name="width">提示宽度</param>
        public void Show(Control Owner, string text, string title, bool IsBallon, TipPosition position, int width)
        {
            try
            {
                if (!wsnToolTip.IsVisible())
                {
                    Reset();
                    pOwner = Owner.Handle;
                    
                    wsnToolTip.BallonStyle = IsBallon;
                    wsnToolTip.UseVisualStyle = true;
                    wsnToolTip.MultiLine = true;
                    wsnToolTip.MaximumWidth = width;
                    wsnToolTip.Opacity = 0.85F;
                    wsnToolTip.CloseButton = false;
                    wsnToolTip.ShowAlways = true;
                    wsnToolTip.AutoPopDelay = 5000;
                    wsnToolTip.Position = position;

                    if (IsBallon)
                    {
                        wsnToolTip.CustomStyle = TipStyle.Gradient;
                        wsnToolTip.GradientType = GradientStyle.VerticalTube;
                        wsnToolTip.GradientStartColor = Color.White;
                        wsnToolTip.GradientEndColor = Color.FromArgb(0xC0D8DD);
                    }

                    wsnToolTip.SetToolTip(Owner, text);

                    if (title != null)
                    {
                        wsnToolTip.SetTipTitle(pOwner, title);
                    }
                }
            }
            catch
            {
                throw;
            }
        }
コード例 #4
0
        /// <summary>
        /// 带默认图标悬浮提示
        /// </summary>
        /// <param name="Owner">关联控件</param>
        /// <param name="icon">OsIcon默认图标</param>
        /// <param name="text">提示文本</param>
        /// <param name="title">提示标题</param>
        /// <param name="IsBallon">是否气泡</param>
        /// <param name="position">显示位置</param>
        /// <param name="width">提示宽度</param>
        public void Show(Control Owner, OsIcon icon, string text, string title, bool IsBallon, TipPosition position, int width)
        {
            try
            {
                if (!wsnToolTip.IsVisible())
                {
                    Reset();
                    pOwner = Owner.Handle;

                    wsnToolTip.BallonStyle    = IsBallon;
                    wsnToolTip.UseVisualStyle = false;
                    wsnToolTip.CloseButton    = false;
                    wsnToolTip.MultiLine      = true;
                    wsnToolTip.MaximumWidth   = width;

                    wsnToolTip.SetToolTip(Owner, text);

                    if (title != null)
                    {
                        wsnToolTip.SetTipTitle(title, icon);
                    }
                }
            }
            catch
            {
                throw;
            }
        }
コード例 #5
0
    public void Init(string text, TipPosition tipPosition, float x, float y, float width = 320, bool closeOnInputCatcherClick = false)
    {
        if (gameObject.activeSelf)
        {
            gameObject.SetActive(false);
        }

        this.tipLeft.gameObject.SetActive(tipPosition == TipPosition.LEFT);
        this.tipRight.gameObject.SetActive(tipPosition == TipPosition.RIGHT);
        this.tipTop.gameObject.SetActive(tipPosition == TipPosition.TOP || tipPosition == TipPosition.TOP_LEFT || tipPosition == TipPosition.TOP_RIGHT);
        this.tipBottom.gameObject.SetActive(tipPosition == TipPosition.BOTTOM || tipPosition == TipPosition.BOTTOM_LEFT || tipPosition == TipPosition.BOTTOM_RIGHT);

        rectTransform           = GetComponent <RectTransform>();
        rectTransform.sizeDelta = new Vector2(width, 0);

        this.bubbleText.text = text;

        switch (tipPosition)
        {
        case TipPosition.TOP:
            rectTransform.pivot = new Vector2(0.5f, 1.0f);
            tipTop.rectTransform.anchoredPosition = new Vector3(0.0f, tipTop.rectTransform.localPosition.y, tipTop.rectTransform.localPosition.z);
            break;

        case TipPosition.TOP_RIGHT:
            rectTransform.pivot = new Vector2(0.75f, 1.0f);
            tipTop.rectTransform.anchoredPosition = new Vector3(width / 4.0f, tipTop.rectTransform.localPosition.y, tipTop.rectTransform.localPosition.z);
            break;

        case TipPosition.TOP_LEFT:
            rectTransform.pivot = new Vector2(0.25f, 1.0f);
            tipTop.rectTransform.anchoredPosition = new Vector3(width / -4.0f, tipTop.rectTransform.localPosition.y, tipTop.rectTransform.localPosition.z);
            break;

        case TipPosition.BOTTOM:
            rectTransform.pivot = new Vector2(0.5f, 0.0f);
            tipBottom.rectTransform.anchoredPosition = new Vector3(0.0f, tipBottom.rectTransform.localPosition.y, tipBottom.rectTransform.localPosition.z);
            break;

        case TipPosition.BOTTOM_RIGHT:
            rectTransform.pivot = new Vector2(0.75f, 0.0f);
            tipBottom.rectTransform.anchoredPosition = new Vector3(width / 4.0f, tipBottom.rectTransform.localPosition.y, tipBottom.rectTransform.localPosition.z);
            break;

        case TipPosition.BOTTOM_LEFT:
            rectTransform.pivot = new Vector2(0.25f, 0.0f);
            tipBottom.rectTransform.anchoredPosition = new Vector3(width / -4.0f, tipBottom.rectTransform.localPosition.y, tipBottom.rectTransform.localPosition.z);
            break;

        case TipPosition.LEFT:
            rectTransform.pivot = new Vector2(0.0f, 0.5f);
            break;

        case TipPosition.RIGHT:
            rectTransform.pivot = new Vector2(1.0f, 0.5f);
            break;

        default:
            break;
        }

        rectTransform.position = new Vector3(x, y);
        gameObject.SetActive(true);

        if (inputCatcher)
        {
            inputCatcher.SetActive(closeOnInputCatcherClick);
        }
    }
コード例 #6
0
        /// <summary>
        /// 带默认图标悬浮提示
        /// </summary>
        /// <param name="Owner">关联控件</param>
        /// <param name="icon">OsIcon默认图标</param>
        /// <param name="text">提示文本</param>
        /// <param name="title">提示标题</param>
        /// <param name="IsBallon">是否气泡</param>
        /// <param name="position">显示位置</param>
        /// <param name="width">提示宽度</param>
        public void Show(Control Owner, OsIcon icon, string text, string title, bool IsBallon, TipPosition position, int width)
        {
            try
            {
                if (!wsnToolTip.IsVisible())
                {
                    Reset();
                    pOwner = Owner.Handle;
                    
                    wsnToolTip.BallonStyle = IsBallon;
                    wsnToolTip.UseVisualStyle = false;
                    wsnToolTip.CloseButton = false;
                    wsnToolTip.MultiLine = true;
                    wsnToolTip.MaximumWidth = width;

                    wsnToolTip.SetToolTip(Owner, text);

                    if (title != null)
                    {
                        wsnToolTip.SetTipTitle(title, icon);
                    }
                }

            }
            catch
            {
                throw;
            }
        }
コード例 #7
0
        /// <summary>Suggests a better tooltip position, based on where the tooltip is overflowing and the previously-desired position.</summary>
        /// <param name="fromPosition">The previously-desired tip position.</param>
        public TipPosition SuggestNewPosition(TipPosition fromPosition)
        {
            bool useMousePos = fromPosition == TipPosition.MouseBottomLeftCorner || fromPosition == TipPosition.MouseTopLeftCorner || fromPosition == TipPosition.MouseBottomRightCorner || fromPosition == TipPosition.MouseTopRightCorner ||
                               fromPosition == TipPosition.MouseTopMiddle || fromPosition == TipPosition.MouseLeftMiddle || fromPosition == TipPosition.MouseRightMiddle || fromPosition == TipPosition.MouseBottomMiddle;

            switch (fromPosition) // desired tip position
            {
            case TipPosition.TopRightCorner:
            case TipPosition.MouseTopRightCorner:
                if (TopEdge && RightEdge)     // flip to opposite corner.
                {
                    return(useMousePos ? TipPosition.MouseBottomLeftCorner : TipPosition.BottomLeftCorner);
                }
                if (TopEdge)     // flip to bottom.
                {
                    return(useMousePos ? TipPosition.MouseBottomRightCorner : TipPosition.BottomRightCorner);
                }
                if (RightEdge)     // flip to left.
                {
                    return(useMousePos ? TipPosition.MouseTopLeftCorner : TipPosition.TopLeftCorner);
                }
                break;

            case TipPosition.BottomRightCorner:
            case TipPosition.MouseBottomRightCorner:
                if (BottomEdge && RightEdge)     // flip to opposite corner.
                {
                    return(useMousePos ? TipPosition.MouseTopLeftCorner : TipPosition.TopLeftCorner);
                }
                if (BottomEdge)     // flip to top.
                {
                    return(useMousePos ? TipPosition.MouseTopRightCorner : TipPosition.TopRightCorner);
                }
                if (RightEdge)     // flip to left.
                {
                    return(useMousePos ? TipPosition.MouseBottomLeftCorner : TipPosition.BottomLeftCorner);
                }
                break;

            case TipPosition.TopLeftCorner:
            case TipPosition.MouseTopLeftCorner:
                if (TopEdge && LeftEdge)     // flip to opposite corner.
                {
                    return(useMousePos ? TipPosition.MouseBottomRightCorner : TipPosition.BottomRightCorner);
                }
                if (TopEdge)     // flip to bottom.
                {
                    return(useMousePos ? TipPosition.MouseBottomLeftCorner : TipPosition.BottomLeftCorner);
                }
                if (LeftEdge)     // flip to right.
                {
                    return(useMousePos ? TipPosition.MouseTopRightCorner : TipPosition.TopRightCorner);
                }
                break;

            case TipPosition.BottomLeftCorner:
            case TipPosition.MouseBottomLeftCorner:
                if (BottomEdge && LeftEdge)     // flip to opposite corner.
                {
                    return(useMousePos ? TipPosition.MouseTopRightCorner : TipPosition.TopRightCorner);
                }
                if (BottomEdge)     // flip to top.
                {
                    return(useMousePos ? TipPosition.MouseTopLeftCorner : TipPosition.TopLeftCorner);
                }
                if (LeftEdge)     // flip to right.
                {
                    return(useMousePos ? TipPosition.MouseBottomRightCorner : TipPosition.BottomRightCorner);
                }
                break;

            case TipPosition.TopMiddle:
            case TipPosition.MouseTopMiddle:
                if (TopEdge && RightEdge)     // flip to opposite corner.
                {
                    return(useMousePos ? TipPosition.MouseBottomLeftCorner : TipPosition.BottomLeftCorner);
                }
                if (TopEdge && LeftEdge)     // flip to opposite corner.
                {
                    return(useMousePos ? TipPosition.MouseBottomRightCorner : TipPosition.BottomRightCorner);
                }
                if (TopEdge)     // flip to bottom.
                {
                    return(useMousePos ? TipPosition.MouseBottomMiddle : TipPosition.BottomMiddle);
                }
                if (RightEdge)     // flip to left.
                {
                    return(useMousePos ? TipPosition.MouseLeftMiddle : TipPosition.LeftMiddle);
                }
                if (LeftEdge)     // flip to right.
                {
                    return(useMousePos ? TipPosition.MouseRightMiddle : TipPosition.RightMiddle);
                }
                break;

            case TipPosition.BottomMiddle:
            case TipPosition.MouseBottomMiddle:
                if (BottomEdge && RightEdge)     // flip to opposite corner.
                {
                    return(useMousePos ? TipPosition.MouseTopLeftCorner : TipPosition.TopLeftCorner);
                }
                if (BottomEdge && LeftEdge)     // flip to opposite corner.
                {
                    return(useMousePos ? TipPosition.MouseTopRightCorner : TipPosition.TopRightCorner);
                }
                if (BottomEdge)     // flip to top.
                {
                    return(useMousePos ? TipPosition.MouseTopMiddle : TipPosition.TopMiddle);
                }
                if (RightEdge)     // flip to left.
                {
                    return(useMousePos ? TipPosition.MouseLeftMiddle : TipPosition.LeftMiddle);
                }
                if (LeftEdge)     // flip to right.
                {
                    return(useMousePos ? TipPosition.MouseRightMiddle : TipPosition.RightMiddle);
                }
                break;

            case TipPosition.LeftMiddle:
            case TipPosition.MouseLeftMiddle:
                if (TopEdge && LeftEdge)     // flip to opposite corner.
                {
                    return(useMousePos ? TipPosition.MouseBottomRightCorner : TipPosition.BottomRightCorner);
                }
                if (BottomEdge && LeftEdge)     // flip to opposite corner.
                {
                    return(useMousePos ? TipPosition.MouseTopRightCorner : TipPosition.TopRightCorner);
                }
                if (TopEdge)     // flip to bottom.
                {
                    return(useMousePos ? TipPosition.MouseBottomMiddle : TipPosition.BottomMiddle);
                }
                if (BottomEdge)     // flip to top.
                {
                    return(useMousePos ? TipPosition.MouseTopMiddle : TipPosition.TopMiddle);
                }
                if (LeftEdge)     // flip to right.
                {
                    return(useMousePos ? TipPosition.MouseRightMiddle : TipPosition.RightMiddle);
                }
                break;

            case TipPosition.RightMiddle:
            case TipPosition.MouseRightMiddle:
                if (TopEdge && RightEdge)     // flip to opposite corner.
                {
                    return(useMousePos ? TipPosition.MouseBottomLeftCorner : TipPosition.BottomLeftCorner);
                }
                if (BottomEdge && RightEdge)     // flip to opposite corner.
                {
                    return(useMousePos ? TipPosition.MouseTopLeftCorner : TipPosition.TopLeftCorner);
                }
                if (TopEdge)     // flip to bottom.
                {
                    return(useMousePos ? TipPosition.MouseBottomMiddle : TipPosition.BottomMiddle);
                }
                if (BottomEdge)     // flip to top.
                {
                    return(useMousePos ? TipPosition.MouseTopMiddle : TipPosition.TopMiddle);
                }
                if (RightEdge)     // flip to left.
                {
                    return(useMousePos ? TipPosition.MouseLeftMiddle : TipPosition.LeftMiddle);
                }
                break;
            }
            return(fromPosition);
        }
コード例 #8
0
        public static void SetPosition(TipPosition tipPosition, Vector3[] targetRectCorners, RectTransform targetRectTrans, Canvas canvas, Camera camera, ref Vector3 resultPos)
        {
            // Tooltip Trigger Corners:
            // 0 = bottom left
            // 1 = top left
            // 2 = top right
            // 3 = bottom right

            Vector3 pos      = Vector3.zero;
            Vector2 newPivot = Vector2.zero;

            Vector3 offsetVector = Vector3.zero;
            bool    useMousePos  = tipPosition == TipPosition.MouseBottomLeftCorner || tipPosition == TipPosition.MouseTopLeftCorner || tipPosition == TipPosition.MouseBottomRightCorner || tipPosition == TipPosition.MouseTopRightCorner ||
                                   tipPosition == TipPosition.MouseTopMiddle || tipPosition == TipPosition.MouseLeftMiddle || tipPosition == TipPosition.MouseRightMiddle || tipPosition == TipPosition.MouseBottomMiddle;

            Vector3 mousePos = Input.mousePosition;

            if (canvas.renderMode == RenderMode.ScreenSpaceCamera || canvas.renderMode == RenderMode.WorldSpace)
            {
                mousePos.z = canvas.planeDistance;
                mousePos   = camera.ScreenToWorldPoint(mousePos);
            }

            switch (tipPosition)
            {
            case TipPosition.TopRightCorner:
            case TipPosition.MouseTopRightCorner:
                pos      = useMousePos ? mousePos : targetRectCorners[2];
                newPivot = new Vector2(0, 0);
                break;

            case TipPosition.BottomRightCorner:
            case TipPosition.MouseBottomRightCorner:
                pos      = useMousePos ? mousePos : targetRectCorners[3];
                newPivot = new Vector2(0, 1);
                break;

            case TipPosition.TopLeftCorner:
            case TipPosition.MouseTopLeftCorner:
                pos      = useMousePos ? mousePos : targetRectCorners[1];
                newPivot = new Vector2(1, 0);
                break;

            case TipPosition.BottomLeftCorner:
            case TipPosition.MouseBottomLeftCorner:
                pos      = useMousePos ? mousePos : targetRectCorners[0];
                newPivot = new Vector2(1, 1);
                break;

            case TipPosition.TopMiddle:
            case TipPosition.MouseTopMiddle:
                pos      = useMousePos ? mousePos : targetRectCorners[1] + (targetRectCorners[2] - targetRectCorners[1]) / 2;
                newPivot = new Vector2(.5f, 0);
                break;

            case TipPosition.BottomMiddle:
            case TipPosition.MouseBottomMiddle:
                pos      = useMousePos ? mousePos : targetRectCorners[0] + (targetRectCorners[3] - targetRectCorners[0]) / 2;
                newPivot = new Vector2(.5f, 1);
                break;

            case TipPosition.LeftMiddle:
            case TipPosition.MouseLeftMiddle:
                pos      = useMousePos ? mousePos : targetRectCorners[0] + (targetRectCorners[1] - targetRectCorners[0]) / 2;
                newPivot = new Vector2(1, .5f);
                break;

            case TipPosition.RightMiddle:
            case TipPosition.MouseRightMiddle:
                pos      = useMousePos ? mousePos : targetRectCorners[3] + (targetRectCorners[2] - targetRectCorners[3]) / 2;
                newPivot = new Vector2(0, .5f);
                break;
            }

            resultPos             = pos;
            targetRectTrans.pivot = newPivot;
        }
コード例 #9
0
        /// <summary>This method does the heavy lifting for setting the correct tooltip position.</summary>
        private static void SetPosition(this Tooltip tooltip, TipPosition tipPosition, TooltipStyle style, Vector3[] triggerCorners, Image bkgImage, RectTransform tooltipRectTrans, Canvas canvas, Camera camera)
        {
            // Tooltip Trigger Corners:
            // 0 = bottom left
            // 1 = top left
            // 2 = top right
            // 3 = bottom right

            Vector3 pos          = Vector3.zero;
            Vector3 offsetVector = Vector3.zero;

            switch (tipPosition)
            {
            case TipPosition.TopRightCorner:
            case TipPosition.MouseTopRightCorner:
                offsetVector    = new Vector3(-1 * style.tipOffset, -1 * style.tipOffset);
                bkgImage.sprite = style.bottomLeftCorner;
                break;

            case TipPosition.BottomRightCorner:
            case TipPosition.MouseBottomRightCorner:
                offsetVector    = new Vector3(-1 * style.tipOffset, style.tipOffset);
                bkgImage.sprite = style.topLeftCorner;
                break;

            case TipPosition.TopLeftCorner:
            case TipPosition.MouseTopLeftCorner:
                offsetVector    = new Vector3(style.tipOffset, -1 * style.tipOffset);
                bkgImage.sprite = style.bottomRightCorner;
                break;

            case TipPosition.BottomLeftCorner:
            case TipPosition.MouseBottomLeftCorner:
                offsetVector    = new Vector3(style.tipOffset, style.tipOffset);
                bkgImage.sprite = style.topRightCorner;
                break;

            case TipPosition.TopMiddle:
            case TipPosition.MouseTopMiddle:
                offsetVector    = new Vector3(0, -1 * style.tipOffset);
                bkgImage.sprite = style.topMiddle;
                break;

            case TipPosition.BottomMiddle:
            case TipPosition.MouseBottomMiddle:
                offsetVector    = new Vector3(0, style.tipOffset);
                bkgImage.sprite = style.bottomMiddle;
                break;

            case TipPosition.LeftMiddle:
            case TipPosition.MouseLeftMiddle:
                offsetVector    = new Vector3(style.tipOffset, 0);
                bkgImage.sprite = style.leftMiddle;
                break;

            case TipPosition.RightMiddle:
            case TipPosition.MouseRightMiddle:
                offsetVector    = new Vector3(-1 * style.tipOffset, 0);
                bkgImage.sprite = style.rightMiddle;
                break;
            }
            SetPosition(tipPosition, triggerCorners, tooltipRectTrans, canvas, camera, ref pos);
            tooltip.GameObject.transform.position = pos;
            tooltipRectTrans.anchoredPosition    += (Vector2)offsetVector;
            pos   = tooltipRectTrans.anchoredPosition3D;
            pos.z = 0;
            tooltipRectTrans.anchoredPosition3D = pos;
        }
コード例 #10
0
ファイル: TooltipManager.cs プロジェクト: jlavoine/DotR
        private static void SetTooltipPosition(TipPosition tipPosition, GameObject tooltipObj, TooltipStyle style, Vector3[] triggerCorners, Image tooltipImage, RectTransform tooltipRectTrans, bool useMousePosition)
        {
            Vector3 pos = Vector3.zero;
            Vector3 offsetVector;

            switch (tipPosition)
            {
            case TipPosition.TopRightCorner:
            case TipPosition.MouseTopRightCorner:
                offsetVector = new Vector3(-1 * style.tipOffset, -1 * style.tipOffset);
                if (useMousePosition)
                {
                    pos = Input.mousePosition + offsetVector;
                }
                else
                {
                    pos = triggerCorners[2] + offsetVector;
                }
                tooltipRectTrans.pivot = new Vector2(0, 0);
                tooltipImage.sprite    = style.bottomLeftCorner;
                break;

            case TipPosition.BottomRightCorner:
            case TipPosition.MouseBottomRightCorner:
                offsetVector = new Vector3(-1 * style.tipOffset, style.tipOffset);
                if (useMousePosition)
                {
                    pos = Input.mousePosition + offsetVector;
                }
                else
                {
                    pos = triggerCorners[3] + offsetVector;
                }
                tooltipRectTrans.pivot = new Vector2(0, 1);
                tooltipImage.sprite    = style.topLeftCorner;
                break;

            case TipPosition.TopLeftCorner:
            case TipPosition.MouseTopLeftCorner:
                offsetVector = new Vector3(style.tipOffset, -1 * style.tipOffset);
                if (useMousePosition)
                {
                    pos = Input.mousePosition + offsetVector;
                }
                else
                {
                    pos = triggerCorners[1] + offsetVector;
                }
                tooltipRectTrans.pivot = new Vector2(1, 0);
                tooltipImage.sprite    = style.bottomRightCorner;
                break;

            case TipPosition.BottomLeftCorner:
            case TipPosition.MouseBottomLeftCorner:
                offsetVector = new Vector3(style.tipOffset, style.tipOffset);
                if (useMousePosition)
                {
                    pos = Input.mousePosition + offsetVector;
                }
                else
                {
                    pos = triggerCorners[0] + offsetVector;
                }
                tooltipRectTrans.pivot = new Vector2(1, 1);
                tooltipImage.sprite    = style.topRightCorner;
                break;
            }
            // Set the position of the tooltip container.
            tooltipObj.transform.position = pos;
        }
コード例 #11
0
ファイル: TooltipManager.cs プロジェクト: jlavoine/DotR
 private static void SetTooltipPosition(TipPosition tipPosition, GameObject tooltipObj, TooltipStyle style, Vector3[] triggerCorners, Image tooltipImage, RectTransform tooltipRectTrans, bool useMousePosition)
 {
     Vector3 pos = Vector3.zero;
     Vector3 offsetVector;
     switch (tipPosition)
     {
         case TipPosition.TopRightCorner:
         case TipPosition.MouseTopRightCorner:
             offsetVector = new Vector3(-1 * style.tipOffset, -1 * style.tipOffset);
             if (useMousePosition)
                 pos = Input.mousePosition + offsetVector;
             else
                 pos = triggerCorners[2] + offsetVector;
             tooltipRectTrans.pivot = new Vector2(0, 0);
             tooltipImage.sprite = style.bottomLeftCorner;
             break;
         case TipPosition.BottomRightCorner:
         case TipPosition.MouseBottomRightCorner:
             offsetVector = new Vector3(-1 * style.tipOffset, style.tipOffset);
             if (useMousePosition)
                 pos = Input.mousePosition + offsetVector;
             else
                 pos = triggerCorners[3] + offsetVector;
             tooltipRectTrans.pivot = new Vector2(0, 1);
             tooltipImage.sprite = style.topLeftCorner;
             break;
         case TipPosition.TopLeftCorner:
         case TipPosition.MouseTopLeftCorner:
             offsetVector = new Vector3(style.tipOffset, -1 * style.tipOffset);
             if (useMousePosition)
                 pos = Input.mousePosition + offsetVector;
             else
                 pos = triggerCorners[1] + offsetVector;
             tooltipRectTrans.pivot = new Vector2(1, 0);
             tooltipImage.sprite = style.bottomRightCorner;
             break;
         case TipPosition.BottomLeftCorner:
         case TipPosition.MouseBottomLeftCorner:
             offsetVector = new Vector3(style.tipOffset, style.tipOffset);
             if (useMousePosition)
                 pos = Input.mousePosition + offsetVector;
             else
                 pos = triggerCorners[0] + offsetVector;
             tooltipRectTrans.pivot = new Vector2(1, 1);
             tooltipImage.sprite = style.topRightCorner;
             break;
     }
     // Set the position of the tooltip container.
     tooltipObj.transform.position = pos;
 }
コード例 #12
0
        /// <summary>This method does the heavy lifting for setting the correct tooltip position.</summary>
        private static void SetPosition(this Tooltip tooltip, TipPosition tipPosition, TooltipStyle style, Vector3[] triggerCorners, Image bkgImage, RectTransform tooltipRectTrans, Canvas canvas, Camera camera)
        {
            // Tooltip Trigger Corners:
            // 0 = bottom left
            // 1 = top left
            // 2 = top right
            // 3 = bottom right

            Vector3 pos          = Vector3.zero;
            Vector3 offsetVector = Vector3.zero;
            bool    useMousePos  = tipPosition == TipPosition.MouseBottomLeftCorner || tipPosition == TipPosition.MouseTopLeftCorner || tipPosition == TipPosition.MouseBottomRightCorner || tipPosition == TipPosition.MouseTopRightCorner ||
                                   tipPosition == TipPosition.MouseTopMiddle || tipPosition == TipPosition.MouseLeftMiddle || tipPosition == TipPosition.MouseRightMiddle || tipPosition == TipPosition.MouseBottomMiddle;
            Vector3 mousePos = Input.mousePosition;

            if (canvas.renderMode == RenderMode.ScreenSpaceCamera)
            {
                mousePos.z = canvas.planeDistance;
                mousePos   = camera.ScreenToWorldPoint(mousePos);
            }

            switch (tipPosition)
            {
            case TipPosition.TopRightCorner:
            case TipPosition.MouseTopRightCorner:
                offsetVector           = new Vector3(-1 * style.tipOffset, -1 * style.tipOffset);
                pos                    = useMousePos ? mousePos : triggerCorners[2];
                tooltipRectTrans.pivot = new Vector2(0, 0);
                bkgImage.sprite        = style.bottomLeftCorner;
                break;

            case TipPosition.BottomRightCorner:
            case TipPosition.MouseBottomRightCorner:
                offsetVector           = new Vector3(-1 * style.tipOffset, style.tipOffset);
                pos                    = useMousePos ? mousePos : triggerCorners[3];
                tooltipRectTrans.pivot = new Vector2(0, 1);
                bkgImage.sprite        = style.topLeftCorner;
                break;

            case TipPosition.TopLeftCorner:
            case TipPosition.MouseTopLeftCorner:
                offsetVector           = new Vector3(style.tipOffset, -1 * style.tipOffset);
                pos                    = useMousePos ? mousePos : triggerCorners[1];
                tooltipRectTrans.pivot = new Vector2(1, 0);
                bkgImage.sprite        = style.bottomRightCorner;
                break;

            case TipPosition.BottomLeftCorner:
            case TipPosition.MouseBottomLeftCorner:
                offsetVector           = new Vector3(style.tipOffset, style.tipOffset);
                pos                    = useMousePos ? mousePos : triggerCorners[0];
                tooltipRectTrans.pivot = new Vector2(1, 1);
                bkgImage.sprite        = style.topRightCorner;
                break;

            case TipPosition.TopMiddle:
            case TipPosition.MouseTopMiddle:
                offsetVector           = new Vector3(0, -1 * style.tipOffset);
                pos                    = useMousePos ? mousePos : triggerCorners[1] + (triggerCorners[2] - triggerCorners[1]) / 2;
                tooltipRectTrans.pivot = new Vector2(.5f, 0);
                bkgImage.sprite        = style.topMiddle;
                break;

            case TipPosition.BottomMiddle:
            case TipPosition.MouseBottomMiddle:
                offsetVector           = new Vector3(0, style.tipOffset);
                pos                    = useMousePos ? mousePos : triggerCorners[0] + (triggerCorners[3] - triggerCorners[0]) / 2;
                tooltipRectTrans.pivot = new Vector2(.5f, 1);
                bkgImage.sprite        = style.bottomMiddle;
                break;

            case TipPosition.LeftMiddle:
            case TipPosition.MouseLeftMiddle:
                offsetVector           = new Vector3(style.tipOffset, 0);
                pos                    = useMousePos ? mousePos : triggerCorners[0] + (triggerCorners[1] - triggerCorners[0]) / 2;
                tooltipRectTrans.pivot = new Vector2(1, .5f);
                bkgImage.sprite        = style.leftMiddle;
                break;

            case TipPosition.RightMiddle:
            case TipPosition.MouseRightMiddle:
                offsetVector           = new Vector3(-1 * style.tipOffset, 0);
                pos                    = useMousePos ? mousePos : triggerCorners[3] + (triggerCorners[2] - triggerCorners[3]) / 2;
                tooltipRectTrans.pivot = new Vector2(0, .5f);
                bkgImage.sprite        = style.rightMiddle;
                break;
            }

            tooltip.GameObject.transform.position = pos;
            tooltipRectTrans.anchoredPosition    += (Vector2)offsetVector;
        }