示例#1
0
        private void Update()
        {
            if (!TooltipPanel.IsActive)
            {
                return;
            }

            // Apply world position to window rect.
            var rectTransform = TooltipWindow.WindowTransform;

            rectTransform.position = (Vector2)Input.mousePosition;

            // Calculate and apply fixed offset to window.
            var offset       = new Vector2(rectTransform.sizeDelta.x * Offset.x, rectTransform.sizeDelta.y * Offset.y);
            var nextPosition = rectTransform.anchoredPosition;

            // TEST
            // var xRatio = rectTransform.anchoredPosition.x / TooltipWindow.RootTransform.rect.width;
            var yRatio = rectTransform.anchoredPosition.y / TooltipWindow.RootTransform.rect.height;
            // var xSize = rectTransform.sizeDelta.x / TooltipWindow.RootTransform.rect.width;
            var ySize = rectTransform.sizeDelta.y / TooltipWindow.RootTransform.rect.height;

            if (ySize > yRatio)
            {
                nextPosition.y += rectTransform.sizeDelta.y;
                nextPosition   -= FixedPosition;
            }
            else
            {
                nextPosition += FixedPosition;
            }

            // Debug.Log($"{xRatio}x{yRatio} vs {xSize}x{ySize}");

            nextPosition -= offset;

            // Apply rect position.
            rectTransform.anchoredPosition = nextPosition;

            // Clam window transform position to it's workspace.
            TooltipWindow.ClampWindowTransform();
        }