From 5b8a8c82864d4ea7e2f93484bd26f293dd31979d Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 01 九月 2025 23:26:58 +0800
Subject: [PATCH] 50 【主界面】核心主体 - 主线BOS界面

---
 Main/System/ItemTip/SmallTipWin.cs |   42 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 35 insertions(+), 7 deletions(-)

diff --git a/Main/System/ItemTip/SmallTipWin.cs b/Main/System/ItemTip/SmallTipWin.cs
index cc4bba1..e2bdbcc 100644
--- a/Main/System/ItemTip/SmallTipWin.cs
+++ b/Main/System/ItemTip/SmallTipWin.cs
@@ -3,22 +3,31 @@
 using UnityEngine.UI;
 
 /// <summary>
-/// 鏂囨湰鎻愮ず鐣岄潰
+/// 鏂囨湰鎻愮ず鐣岄潰锛氬閮ㄤ紶鍏ユ枃鏈唴瀹瑰拰涓栫晫鍧愭爣绯讳綅缃�
 /// </summary>
 public class SmallTipWin : UIBase
 {
 
     [SerializeField] RectTransform rectTransform;
     [SerializeField] RectTransform arrowImage;
+    [SerializeField] RectTransform arrowUpImage;
     [SerializeField] Text descText;
 
     public static Vector3 worldPos; //涓栫晫鍧愭爣绯讳綅缃�
     public static string showText;
+    public static bool isDownShow = false;  // 鏄惁鍚戜笅鏄剧ず
 
     protected override void OnPreOpen()
-    { 
+    {
         descText.text = showText;
         rectTransform.position = new Vector3(100, 100, 100);   //鍒濆鍖栨椂锛屽睆骞曡寖鍥村
+        arrowImage.SetActive(!isDownShow);
+        arrowUpImage.SetActive(isDownShow);
+    }
+
+    protected override void OnPreClose()
+    {
+        isDownShow = false;
     }
     
 
@@ -45,14 +54,23 @@
 
 
         float screenHeight = maxY - minY;
-        Vector2 adjustedPos = new Vector2(worldPos.x, worldPos.y + screenHeight * 0.5f);
+        Vector2 adjustedPos = new Vector2(worldPos.x, worldPos.y + (!isDownShow ? screenHeight * 0.5f : -screenHeight * 0.5f));
 
         Vector2 screenAdjustedPos = CameraManager.uiCamera.WorldToScreenPoint(adjustedPos);
         screenAdjustedPos.x = Mathf.Clamp(screenAdjustedPos.x, rectTransform.rect.width * 0.5f, Screen.width - rectTransform.rect.width * 0.5f);
         screenAdjustedPos.y = Mathf.Clamp(screenAdjustedPos.y, rectTransform.rect.height * 0.5f, Screen.height - rectTransform.rect.height * 0.5f - 15);
+
         adjustedPos = CameraManager.uiCamera.ScreenToWorldPoint(screenAdjustedPos);
         rectTransform.position = adjustedPos;
-        rectTransform.localPosition = new Vector3(rectTransform.localPosition.x, rectTransform.localPosition.y + 15, rectTransform.localPosition.z);
+
+        if (!isDownShow)
+        {
+            rectTransform.localPosition = new Vector3(rectTransform.localPosition.x, rectTransform.localPosition.y + 15, rectTransform.localPosition.z);
+        }
+        else
+        {
+            rectTransform.localPosition = new Vector3(rectTransform.localPosition.x, rectTransform.localPosition.y - 15, rectTransform.localPosition.z);
+        }
 
         rectTransform.GetWorldCorners(corners);
         float minX = corners[0].x;
@@ -63,10 +81,20 @@
             if (corners[i].x < minX) minX = corners[i].x;
             if (corners[i].x > maxX) maxX = corners[i].x;
         }
+
         //鏄剧ずarrowImage 鐨剎杞翠笂鐨勪綅缃紝鍜寃orldPos鍚屾锛屼絾涓嶈秴杩噈inX 鍜� maxX鑼冨洿
-        Vector3 arrowImagePosition = arrowImage.position;
-        arrowImagePosition.x = Mathf.Clamp(worldPos.x, minX, maxX);
-        arrowImage.position = arrowImagePosition;
+        if (!isDownShow)
+        {
+            Vector3 arrowImagePosition = arrowImage.position;
+            arrowImagePosition.x = Mathf.Clamp(worldPos.x, minX, maxX);
+            arrowImage.position = arrowImagePosition;
+        }
+        else
+        {
+            Vector3 arrowUpImagePosition = arrowUpImage.position;
+            arrowUpImagePosition.x = Mathf.Clamp(worldPos.x, minX, maxX);
+            arrowUpImage.position = arrowUpImagePosition;
+        }
 
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0