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(); }