Example #1
0
        private void Initialize()
        {
            if (isInitialized || UTooltipManager.Instance == null)
            {
                return;
            }

            RectTransform = gameObject.GetComponent <RectTransform>();

            if (tooltipStyle != null)
            {
                //检测当前ToolTipsStyle是否已经创建,是则直接用,否则创建一个
                if (!UTooltipManager.Instance.Tooltips.ContainsKey(tooltipStyle.TooltipID))
                {
                    TooltipStyle ttStyle = Instantiate(tooltipStyle);
                    ttStyle.name = tooltipStyle.name;
                    ttStyle.transform.SetParent(UTooltipManager.Instance.TooltipContainer.transform, false);
                    Tooltip newTooltip = new Tooltip()
                    {
                        GameObject = ttStyle.gameObject
                    };
                    newTooltip.Initialize();
                    newTooltip.Deactivate();
                    UTooltipManager.Instance.Tooltips.Add(tooltipStyle.TooltipID, newTooltip);
                }
                Tooltip = UTooltipManager.Instance.Tooltips[tooltipStyle.TooltipID];
            }
            isInitialized = true;

            UTooltipManager.Instance.TooltipMgrInitEvent.RemoveListener(Initialize);
        }
Example #2
0
        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();
            serializedObject.Update();

            TooltipStyle tooltipstyle = target as TooltipStyle;

            tooltipID.intValue = (int)((USpeedUI.ETooltipStyle)EditorGUILayout.EnumPopup(new GUIContent("类型ID"), (USpeedUI.ETooltipStyle)tooltipID.intValue));

            if (GUI.changed)
            {
                EditorUtility.SetDirty(tooltipstyle);
            }
            serializedObject.ApplyModifiedProperties();
        }
        /// <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;
        }