血条UI的结构
HealthBar为空物体
HealthBar_Background为血条的底图
HealthBar_Fill为血条UI
HealthBar_Effect为血条缓存UI
示例代码:
using System;
using UnityEngine;
using UnityEngine.UI;
public class Test : MonoBehaviour
{
public Image mHealthBarFill;//血条UI
public Image mHealthBarEffect;//血条缓存UI
public float TranslateSpeed = 1f;//血条缓存速度
private float mMaxHp = 100;//最大生命
private float mCurHp = 100;//当前生命
private void Update()
{
if (Input.GetMouseButtonDown(0))
{
mCurHp -= 10;
if(mCurHp <= 0)
{
mHealthBarFill.fillAmount = 0;
Debug.Log("游戏结束了");
return;
}
}
UpdateHealthBar();
}
private void UpdateHealthBar()
{
mHealthBarFill.fillAmount = mCurHp / mMaxHp;
if(mHealthBarEffect.fillAmount > mHealthBarFill.fillAmount)
{
mHealthBarEffect.fillAmount = Mathf.Lerp(mHealthBarEffect.fillAmount, mHealthBarFill.fillAmount, TranslateSpeed * Time.deltaTime);
}
}
}