| | |
| | | private float target; |
| | | |
| | | /// <summary> |
| | | /// 血条消失速度 |
| | | /// </summary> |
| | | public float Speed = 50f; |
| | | |
| | | /// <summary> |
| | | /// 当前颜色索引 |
| | | /// </summary> |
| | | private int index; |
| | | |
| | | private Tween tween; |
| | | |
| | | public TextMeshProUGUI WaveNumText; |
| | | |
| | |
| | | /// </summary> |
| | | public Text BossInfo; |
| | | |
| | | private Sequence progressSequence; |
| | | |
| | | public Text HPInfoText; |
| | | |
| | | private float totalHP; |
| | | |
| | | /// <summary> |
| | | /// boss总血量 |
| | | /// </summary> |
| | | /// <value></value> |
| | | private float TotalHP { get; set; } |
| | | |
| | | private float hp; |
| | | |
| | | /// <summary> |
| | | /// 当前血量 |
| | | /// </summary> |
| | | /// <value></value> |
| | | public float CurrentHP |
| | | { |
| | | get { return hp; } |
| | | private set |
| | | { |
| | | hp = value; |
| | | |
| | | if (hp < 0.00001f) hp = 0; |
| | | } |
| | | } |
| | | |
| | | // Start is called before the first frame update |
| | | private void Start() |
| | | { |
| | | InitHP(); |
| | | Init(); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置当前进度百分比 |
| | | /// 设置boss的当前血量 |
| | | /// </summary> |
| | | /// <param name="progress"></param> |
| | | public void SetCurrentProgress(float progress) |
| | | /// <param name="hp"></param> |
| | | public void SetCurrentHP(float hp) |
| | | { |
| | | target = progress; |
| | | tween = DOTween.To(() => HPImage2.fillAmount, (v) => HPImage2.fillAmount = v, target, 0.3f); |
| | | tween.Play(); |
| | | CurrentHP = hp; |
| | | target = CurrentHP / TotalHP; |
| | | HPInfoText.text = $"HP:{Mathf.Floor(CurrentHP)}/{Mathf.Floor(TotalHP)}"; |
| | | DOTween.To(() => HPImage2.fillAmount, (float v) => HPImage2.fillAmount = v, target, 0.2f); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="end"></param> |
| | | public void SwitchHP(bool end = false) |
| | | { |
| | | tween.Pause(); |
| | | HPImage2.fillAmount = 0; |
| | | index = ++index % count; |
| | | ChangeHPImageIndex(); |
| | |
| | | /// <summary> |
| | | /// 初始化血条 |
| | | /// </summary> |
| | | public void InitHP() |
| | | public void Init() |
| | | { |
| | | index = 0; |
| | | ResetProgress(); |
| | | SetHPColor(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 初始化血量数据 |
| | | /// </summary> |
| | | /// <param name="totalHP"></param> |
| | | public void InitHP(float totalHP) |
| | | { |
| | | CurrentHP = TotalHP = totalHP; |
| | | HPInfoText.text = $"HP:{Mathf.Floor(CurrentHP)}/{Mathf.Floor(TotalHP)}"; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | private Sprite GetSprite(int index) |
| | | { |
| | | return Resources.Load($"{path}{index}", typeof(Sprite)) as Sprite; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置boss形象 |
| | | /// </summary> |
| | | /// <param name="resId"></param> |
| | | public void SetBossImage(int resId) |
| | | { |
| | | resId = (resId + 1) % 2 + 1; |
| | | // BossImage.sprite = Resources.Load<Sprite>($"{bossPath}{resId}"); |
| | | // BossImage.SetNativeSize(); |
| | | } |
| | | } |
| | | } |