Files
Continentis/Assets/Scripts/MainGame/UI/HUDPage/HUDElements/HUD_CharacterBuffCollection.cs
SoulliesOfficial 76157e3cb1 继续
2025-10-24 09:11:22 -04:00

43 lines
1.3 KiB
C#

using System.Collections.Generic;
using Continentis.MainGame.Character;
using Lean.Pool;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.MainGame.UI
{
public class HUD_CharacterBuffCollection : HUDElementBase
{
public RectTransform buffContainer;
public GameObject buffIconPrefab;
public List<HUD_CharacterBuffIcon> buffIcons;
public override void UpdateHud()
{
foreach (var buffIcon in buffIcons)
{
buffIcon.UpdateIcon();
}
}
public void AddBuffIcon(CharacterBuffBase buff)
{
HUD_CharacterBuffIcon buffIcon = LeanPool.Spawn(buffIconPrefab, buffContainer).GetComponent<HUD_CharacterBuffIcon>();
buffIcon.Initialize(buff);
buffIcons.AddByPriority(buffIcon);
buffIcon.transform.SetSiblingIndex(buffIcons.IndexOf(buffIcon));
UpdateHud();
}
public void RemoveBuffIcon(CharacterBuffBase buff)
{
HUD_CharacterBuffIcon buffIcon = buffIcons.Find(x => x.buff == buff);
if (buffIcon != null)
{
LeanPool.Despawn(buffIcon.gameObject);
buffIcons.Remove(buffIcon);
}
UpdateHud();
}
}
}