| | |
| | | using UnityEngine.UI; |
| | | using DG.Tweening; |
| | | using Cysharp.Threading.Tasks; |
| | | using System; |
| | | using LitJson; |
| | | |
| | | |
| | | // 这个界面是 persistent的界面 |
| | |
| | | { |
| | | 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() |
| | |
| | | |
| | | private void OnDamageTaken(BattleDmgInfo damageInfo) |
| | | { |
| | | if (battleField.IsBattleEnd()) |
| | | return; |
| | | |
| | | GameObject damageContent = damagePrefabPool.Request(); |
| | | DamageContent content = damageContent.GetComponent<DamageContent>(); |
| | | damageContent.transform.SetParent(damageNode, false); |
| | |
| | | if (battleField != null) |
| | | { |
| | | battleField.OnBattlePause -= OnBattlePause; |
| | | ClearContent(); |
| | | } |
| | | |
| | | battleField = _battleField; |