| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- 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
- /// <summary>
- /// 血条相关
- /// </summary>
- 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;
- }
- /// <summary>
- /// 重置
- /// </summary>
- public void ResetHpBar()
- {
- if (hpBar == null)
- {
- addHp = _HPBarTrans.Find("addHp").GetComponent<Image>();
- hpBar = _HPBarTrans.Find("hpBar").GetComponent<Image>();
- subHp = _HPBarTrans.Find("subHp").GetComponent<Image>();
- }
- 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;
- }
- /// <summary>
- /// 血条更新 (表现
- /// </summary>
- 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<CanvasGroup>().alpha = active ? 1 : 0;
- textHp.gameObject.SetActive(active);
- }
- #endregion
- }
- }
|