using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace WildAttack
{
public class HPBarPanel : MonoBehaviour
{
#region Members
[SerializeField] Transform _HPBarTrans;
//[SerializeField] Text _textWallHp;
private Image addHp;
private Image subHp;
private Image hpBar;
[SerializeField] private Text textHp;
#endregion
#region Lifecycle
// Start is called before the first frame update
void Start()
{
ResetHpBar();
}
// Update is called once per frame
void Update()
{
RefreshHp();
}
#endregion
#region Functions
///
/// 血条相关
///
public void AddHp()
{
addHp.fillAmount = (float)GameMananger.GetInstance().HP / GameMananger.GetInstance().HPMax;
}
public void SubHp()
{
hpBar.fillAmount = (float)GameMananger.GetInstance().HP / GameMananger.GetInstance().HPMax;
addHp.fillAmount = (float)GameMananger.GetInstance().HP / GameMananger.GetInstance().HPMax;
}
///
/// 重置
///
public void ResetHpBar()
{
if (hpBar == null)
{
addHp = _HPBarTrans.Find("addHp").GetComponent();
hpBar = _HPBarTrans.Find("hpBar").GetComponent();
subHp = _HPBarTrans.Find("subHp").GetComponent();
}
hpBar.fillAmount = (float)GameMananger.GetInstance().HP / GameMananger.GetInstance().HPMax;
addHp.fillAmount = (float)GameMananger.GetInstance().HP / GameMananger.GetInstance().HPMax;
subHp.fillAmount = (float)GameMananger.GetInstance().HP / GameMananger.GetInstance().HPMax;
}
///
/// 血条更新 (表现
///
private void RefreshHp()
{
textHp.text = $"{GameMananger.GetInstance().HP}/{GameMananger.GetInstance().HPMax}";
if (hpBar.fillAmount < addHp.fillAmount)
{
hpBar.fillAmount += 0.002f;
subHp.fillAmount = hpBar.fillAmount;
}
if (subHp.fillAmount > hpBar.fillAmount)
{
subHp.fillAmount -= 0.002f;
}
}
public void SetProcessInfoActive(bool active)
{
_HPBarTrans.GetComponent().alpha = active ? 1 : 0;
textHp.gameObject.SetActive(active);
}
#endregion
}
}