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