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 } }