From b5ebd884b559ffc55915ac3db4b00dd2821462f3 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 10 十二月 2025 19:11:19 +0800
Subject: [PATCH] 125 战斗 战斗buff加箭头

---
 Main/System/Battle/UIComp/BattleTips.cs |  112 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 66 insertions(+), 46 deletions(-)

diff --git a/Main/System/Battle/UIComp/BattleTips.cs b/Main/System/Battle/UIComp/BattleTips.cs
index 736d889..1ae840f 100644
--- a/Main/System/Battle/UIComp/BattleTips.cs
+++ b/Main/System/Battle/UIComp/BattleTips.cs
@@ -2,10 +2,6 @@
 using System;
 using UnityEngine.UI;
 
-/// <summary>
-/// 鎴樻枟椋樺瓧UI缁勪欢
-/// 鑱岃矗锛氱鐞哢I鍏冪礌鍜屼笌鎺у埗鍣ㄧ殑浜や簰
-/// </summary>
 public class BattleTips : MonoBehaviour, IBattleFloatingUI
 {
     #region Inspector瀛楁
@@ -15,6 +11,8 @@
     public Text tipText;
     public Text artText;
     public Image background;
+    public Image arrowUp;
+    public Image arrowDown;
 
     [Header("Floating Config")]
     [Tooltip("椋樺瓧鍔ㄧ敾閰嶇疆锛岃鍦↖nspector涓嫋鎷借祴鍊�")]
@@ -26,7 +24,6 @@
     
     public Action OnFinish;
     
-    // Buff 棰滆壊鐩稿叧
     private bool useBuffColor = false;
     private bool isDebuff = false;
     
@@ -34,35 +31,24 @@
 
     #region 绉佹湁瀛楁
     
-    // 绉婚櫎 [SerializeField]锛宑ontroller 涓嶅簲璇ヨ搴忓垪鍖�
     public BattleFloatingUIController controller;
     
     #endregion
 
-
     #region 鍏叡鏂规硶
     
-    /// <summary>
-    /// 璁剧疆閫熷害鍜岀缉鏀炬瘮渚�
-    /// </summary>
     public void SetRatio(float speed, float scale)
     {
         EnsureControllerInitialized();
         controller?.SetRatio(speed, scale);
     }
 
-    /// <summary>
-    /// 璁剧疆杩愯鏃朵綅缃紙鐢ㄤ簬涓嶈窡闅忚鑹茬殑椋樺瓧锛�
-    /// </summary>
     public void SetPosition(Vector2 beginPos, Vector2 endPos)
     {
         EnsureControllerInitialized();
         controller?.SetRuntimePosition(beginPos, endPos);
     }
     
-    /// <summary>
-    /// 杩愯鏃舵洿鏂伴厤缃�
-    /// </summary>
     public void SetFloatingConfig(FloatingConfig config)
     {
         floatingConfig = config;
@@ -75,17 +61,16 @@
         {
             InitController();
         }
+
+        arrowUp.SetActive(false);
+        arrowDown.SetActive(false);
     }
 
-    /// <summary>
-    /// 璁剧疆鏄惁浣跨敤 Buff 棰滆壊
-    /// </summary>
     public void SetBuffColor(bool useBuff, bool isDebuffBuff)
     {
         useBuffColor = useBuff;
         isDebuff = isDebuffBuff;
         
-        // 濡傛灉浣跨敤 buff 棰滆壊锛岀珛鍗宠缃繍琛屾椂棰滆壊瑕嗙洊
         if (useBuffColor && floatingConfig != null)
         {
             Color buffColor = isDebuff ? floatingConfig.debuffColor : floatingConfig.gainBuffColor;
@@ -94,26 +79,19 @@
             
             EnsureControllerInitialized();
             controller?.SetRuntimeColor(beginColor, endColor);
+
+            arrowUp.SetActive(!isDebuff);
+            arrowDown.SetActive(isDebuff);
         }
     }
 
-    /// <summary>
-    /// 璁剧疆鏂囨湰鍐呭鍜屾牱寮�
-    /// </summary>
     public void SetText(string text, bool useArtText = false, bool isCrit = false)
     {
         EnsureControllerInitialized();
-
-        // 鍒囨崲鏂囨湰鏄剧ず绫诲瀷
         SwitchTextDisplay(useArtText, text);
-        
-        // 寮�濮嬫挱鏀�
         Play(isCrit);
     }
 
-    /// <summary>
-    /// 鏄剧ず/闅愯棌鑳屾櫙
-    /// </summary>
     public void ShowBackground(bool show)
     {
         if (background != null)
@@ -130,7 +108,6 @@
         
         if (controller == null) return;
         
-        // 鍚堝苟鍥炶皟
         Action combinedCallback = () =>
         {
             OnFinish?.Invoke();
@@ -160,9 +137,6 @@
 
     #region 绉佹湁鏂规硶
     
-    /// <summary>
-    /// 鍒濆鍖栨帶鍒跺櫒
-    /// </summary>
     private void InitController()
     {
         if (floatingConfig == null)
@@ -177,20 +151,49 @@
             ApplyColor, 
             floatingConfig
         );
+        
+        SetupArrowAnchors();
     }
     
-    /// <summary>
-    /// 纭繚鎺у埗鍣ㄥ凡鍒濆鍖�
-    /// </summary>
+    private void SetupArrowAnchors()
+    {
+        if (arrowDown != null)
+        {
+            RectTransform arrowRect = arrowDown.rectTransform;
+            
+            if (arrowRect.parent != artText.transform)
+            {
+                arrowRect.SetParent(artText.transform, false);
+            }
+            
+            arrowRect.anchorMin = new Vector2(1, 0.5f);
+            arrowRect.anchorMax = new Vector2(1, 0.5f);
+            arrowRect.pivot = new Vector2(0, 0.5f);
+            arrowRect.anchoredPosition = new Vector2(20f, 0f);
+        }
+        
+        if (arrowUp != null)
+        {
+            RectTransform arrowRect = arrowUp.rectTransform;
+            
+            if (arrowRect.parent != artText.transform)
+            {
+                arrowRect.SetParent(artText.transform, false);
+            }
+            
+            arrowRect.anchorMin = new Vector2(1, 0.5f);
+            arrowRect.anchorMax = new Vector2(1, 0.5f);
+            arrowRect.pivot = new Vector2(0, 0.5f);
+            arrowRect.anchoredPosition = new Vector2(20f, 0f);
+        }
+    }
+    
     private void EnsureControllerInitialized()
     {
         if (controller == null || !controller.IsValid())
             InitController();
     }
     
-    /// <summary>
-    /// 鍒囨崲鏂囨湰鏄剧ず绫诲瀷
-    /// </summary>
     private void SwitchTextDisplay(bool useArtText, string text)
     {
         if (useArtText)
@@ -198,18 +201,38 @@
             artText.text = text;
             tipText.gameObject.SetActive(false);
             artText.gameObject.SetActive(true);
+            SwitchArrowParent(artText.rectTransform);
         }
         else
         {
             tipText.text = text;
             artText.gameObject.SetActive(false);
             tipText.gameObject.SetActive(true);
+            SwitchArrowParent(tipText.rectTransform);
         }
     }
     
-    /// <summary>
-    /// 搴旂敤鏂囨湰棰滆壊锛堜繚鐣欓厤缃殑閫忔槑搴︼級
-    /// </summary>
+    private void SwitchArrowParent(RectTransform newParent)
+    {
+        if (arrowDown != null && arrowDown.rectTransform.parent != newParent)
+        {
+            arrowDown.rectTransform.SetParent(newParent, false);
+            arrowDown.rectTransform.anchorMin = new Vector2(1, 0.5f);
+            arrowDown.rectTransform.anchorMax = new Vector2(1, 0.5f);
+            arrowDown.rectTransform.pivot = new Vector2(0, 0.5f);
+            arrowDown.rectTransform.anchoredPosition = new Vector2(5, 0);
+        }
+        
+        if (arrowUp != null && arrowUp.rectTransform.parent != newParent)
+        {
+            arrowUp.rectTransform.SetParent(newParent, false);
+            arrowUp.rectTransform.anchorMin = new Vector2(1, 0.5f);
+            arrowUp.rectTransform.anchorMax = new Vector2(1, 0.5f);
+            arrowUp.rectTransform.pivot = new Vector2(0, 0.5f);
+            arrowUp.rectTransform.anchoredPosition = new Vector2(5, 0);
+        }
+    }
+    
     private void ApplyTextColor(Color textColor)
     {
         if (floatingConfig != null)
@@ -224,9 +247,6 @@
         }
     }
     
-    /// <summary>
-    /// 搴旂敤棰滆壊鍒版縺娲荤殑鏂囨湰缁勪欢
-    /// </summary>
     private void ApplyColor(Color color)
     {
         if (tipText.gameObject.activeSelf)

--
Gitblit v1.8.0