From df03c997716c6f5fbd4b87c01caef1d2e75165fc Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 29 九月 2025 18:50:56 +0800
Subject: [PATCH] 0312 武将培养界面升级属性飘字改用池子管理
---
Main/System/HeroUI/HeroTrainAddAttrCell.cs | 30 +++++++++++++++
Main/System/HeroUI/HeroTrainAddAttrCell.cs.meta | 11 +++++
Main/System/HeroUI/HeroTrainWin.cs | 40 +++++++++++++++-----
3 files changed, 71 insertions(+), 10 deletions(-)
diff --git a/Main/System/HeroUI/HeroTrainAddAttrCell.cs b/Main/System/HeroUI/HeroTrainAddAttrCell.cs
new file mode 100644
index 0000000..142df5f
--- /dev/null
+++ b/Main/System/HeroUI/HeroTrainAddAttrCell.cs
@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+using UnityEngine.UI;
+
+
+/// <summary>
+/// 姝﹀皢鍩瑰吇椋樺瓧澶勭悊
+/// </summary>
+public class HeroTrainAddAttrCell : MonoBehaviour
+{
+ [SerializeField] Text[] addPerText; //澧炲姞鐧惧垎姣旓紙椋樺姩锛� 鍔犲叆姹�
+ [SerializeField] PositionTween addPerObject;
+
+
+ public void Display(int value, Action func)
+ {
+ addPerObject.SetActive(true);
+ for (int i = 0; i < addPerText.Length; i++)
+ {
+ addPerText[i].text = "+" + PlayerPropertyConfig.GetValueDescription(PlayerPropertyConfig.basePerAttrs[i], value);
+ }
+ addPerObject.Play(() =>
+ {
+ func?.Invoke();
+ });
+ }
+
+}
\ No newline at end of file
diff --git a/Main/System/HeroUI/HeroTrainAddAttrCell.cs.meta b/Main/System/HeroUI/HeroTrainAddAttrCell.cs.meta
new file mode 100644
index 0000000..98d3b2a
--- /dev/null
+++ b/Main/System/HeroUI/HeroTrainAddAttrCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ebf03799112fc5244ad17cb46d2e32f8
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/HeroUI/HeroTrainWin.cs b/Main/System/HeroUI/HeroTrainWin.cs
index 6a9dcb3..103d004 100644
--- a/Main/System/HeroUI/HeroTrainWin.cs
+++ b/Main/System/HeroUI/HeroTrainWin.cs
@@ -54,8 +54,8 @@
[SerializeField] Text[] inheritAttrText; //姝﹀皢浼氱户鎵跨殑灞炴��
[SerializeField] RichText heroAddPerText; //涓诲叕锛堜笂闃碉級鍔犳垚鎻忚堪
[SerializeField] Text[] heroAddAttrPerText; //涓诲叕锛堜笂闃碉級鍔犳垚
- [SerializeField] Text[] addPerText; //澧炲姞鐧惧垎姣旓紙椋樺姩锛�
- [SerializeField] PositionTween addPerObject;
+ [SerializeField] Transform addPerParent;
+ [SerializeField] HeroTrainAddAttrCell addPerObject;
[SerializeField] Image lvupMoneyIcon;
[SerializeField] Text lvupMoneyText;
[SerializeField] Text lvupBtnText;
@@ -92,6 +92,9 @@
[SerializeField] Image redpointAwake;
[SerializeField] Image redpointGift;
[SerializeField] Image redpointLVUP;
+
+
+ Queue<HeroTrainAddAttrCell> lvupAttrQueue = new Queue<HeroTrainAddAttrCell>();
string guid;
HeroInfo hero;
@@ -457,15 +460,14 @@
GameNetSystem.Instance.SendInfo(pack);
//棰勬樉绀�
lvupEffect.Play();
- addPerObject.SetActive(true);
- for (int i = 0; i < addPerText.Length; i++)
- {
- addPerText[i].text = "+" + PlayerPropertyConfig.GetValueDescription(PlayerPropertyConfig.basePerAttrs[i], hero.qualityConfig.LVAddPer);
- }
- addPerObject.Play(() =>
- {
- addPerObject.SetActive(false);
+ var cell = RequestCell();
+ cell.transform.localPosition = new Vector3(0, 0, 0);
+ cell.Display(hero.qualityConfig.LVAddPer, ()=>
+ {
+ cell.SetActive(false);
+ ReturnCell(cell);
});
+
HeroUIManager.Instance.lastFightPower = new KeyValuePair<string, long>(hero.itemHero.guid, hero.CalculatePower(false));
}
@@ -473,6 +475,24 @@
}
+
+ HeroTrainAddAttrCell RequestCell()
+ {
+
+ if (lvupAttrQueue.Count == 0)
+ {
+ return Instantiate(addPerObject, addPerParent);
+ }
+ return lvupAttrQueue.Dequeue();
+ }
+
+
+ void ReturnCell(HeroTrainAddAttrCell cell)
+ {
+ lvupAttrQueue.Enqueue(cell);
+ }
+
+
void RefreshAllPotential()
{
if (!HeroBreakConfig.configDics.ContainsKey(hero.heroId))
--
Gitblit v1.8.0