yyl
2025-09-29 3426606c42d2e94057e3c682890e26c8b50d9700
Main/System/Battle/BattleHUDWin.cs
@@ -4,6 +4,8 @@
using UnityEngine.UI;
using DG.Tweening;
using Cysharp.Threading.Tasks;
using System;
using LitJson;
//  这个界面是 persistent的界面
@@ -41,15 +43,36 @@
    {
        base.OnPreOpen();
        EventBroadcast.Instance.AddListener<BattleDmgInfo>(EventName.BATTLE_DAMAGE_TAKEN, OnDamageTaken);
        EventBroadcast.Instance.AddListener<string, JsonData>(EventName.BATTLE_END, OnBattleEnd);
        damagePrefabPool = GameObjectPoolManager.Instance.RequestPool(UILoader.LoadPrefab("DamageContent"));
        // buffIconPrefabPool = GameObjectPoolManager.Instance.RequestPool();
        // buffLabelPrefabPool = GameObjectPoolManager.Instance.RequestPool(ResManager.Instance.LoadAsset<GameObject>("UIComp", "BuffContent"));
    }
    private void OnBattleEnd(string guid, JsonData data)
    {
        ClearContent();
    }
    private void ClearContent()
    {
        // if (battleField.guid == guid)
        {
            for (int i = damageContentList.Count - 1; i >= 0; i--)
            {
                var content = damageContentList[i];
                content.Stop();
                RemoveDamageContent(content);
            }
            damageContentList.Clear();
        }
    }
    protected override void OnPreClose()
    {
        base.OnPreClose();
        EventBroadcast.Instance.RemoveListener<BattleDmgInfo>(EventName.BATTLE_DAMAGE_TAKEN, OnDamageTaken);
        EventBroadcast.Instance.RemoveListener<string, JsonData>(EventName.BATTLE_END, OnBattleEnd);
    }
    protected override void OnOpen()
@@ -82,6 +105,9 @@
    private void OnDamageTaken(BattleDmgInfo damageInfo)
    {
        if (battleField.IsBattleEnd())
            return;
        GameObject damageContent = damagePrefabPool.Request();
        DamageContent content = damageContent.GetComponent<DamageContent>();
        damageContent.transform.SetParent(damageNode, false);
@@ -115,6 +141,7 @@
        if (battleField != null)
        {
            battleField.OnBattlePause -= OnBattlePause;
            ClearContent();
        }
        battleField = _battleField;