53 lines
1.4 KiB
C#
53 lines
1.4 KiB
C#
![]() |
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
using UnityEngine;
|
|||
|
using UnityEngine.UI;
|
|||
|
using DG.Tweening;
|
|||
|
using Sirenix.OdinInspector;
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 控制Boss血条UI
|
|||
|
/// </summary>
|
|||
|
public class BossHPBar : MonoBehaviour
|
|||
|
{
|
|||
|
private float HPLeft = -1f;
|
|||
|
public Enemy boss;
|
|||
|
private Image empty;
|
|||
|
private Text bossName;
|
|||
|
private Image self;
|
|||
|
|
|||
|
void Start(){
|
|||
|
self = GetComponent<Image>();
|
|||
|
empty = transform.Find("血条(底").GetComponent<Image>();
|
|||
|
bossName = transform.Find("Boos名").GetComponent<Text>();
|
|||
|
if(boss.gameObject.name == "地藏") bossName.text = "地藏王菩萨";
|
|||
|
if(boss.gameObject.name == "木马") bossName.text = "特洛伊木马";
|
|||
|
if(boss.gameObject.name == "以撒雕像") bossName.text = "以撒";
|
|||
|
}
|
|||
|
|
|||
|
void Update(){
|
|||
|
//
|
|||
|
//Debug.Log(boss.HPLeft + ", " + boss.HP);
|
|||
|
//
|
|||
|
//每帧检查,当UI剩余血量和玩家真实剩余血量不一致,触发重刷新UI功能
|
|||
|
if(HPLeft != boss.HPLeft) RefrashUI(boss.HPLeft/boss.HP);
|
|||
|
HPLeft = boss.HPLeft;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// boss进入攻击状态的时候调用,开始显示boss血条
|
|||
|
/// </summary>
|
|||
|
public void OnShowUI(){
|
|||
|
self.DOFade(1,1f);
|
|||
|
empty.DOFade(1,1f);
|
|||
|
bossName.DOFade(1,1f);
|
|||
|
}
|
|||
|
|
|||
|
private void RefrashUI(float HPPrograss){
|
|||
|
self.DOFillAmount(HPPrograss,2f);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
}
|