编译器
1.新建三个Image游戏物体,分别命名为BackGround, Mid, Front
2.为Mid和Front的Image放入一张原图像,选择Image Type为Filled,学则Fill Mode(填充方式)为Horizontal(水平填充),并将Fill origin(填充原点)设置为Left
效果
代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class HPUIDynamic : MonoBehaviour
{
public float currentHP;
public float maxHP;
public float speed;
[SerializeField] private Image mid;
[SerializeField] private Image front;
// Start is called before the first frame update
void Start()
{
maxHP = 100f;
currentHP = maxHP;
front.fillAmount = currentHP;
mid.fillAmount = currentHP;
}
// Update is called once per frame
void Update()
{
mid.fillAmount = Mathf.Lerp(mid.fillAmount, front.fillAmount, Time.deltaTime * speed);
if(Input.GetKeyDown(KeyCode.Alpha1)){
currentHP = Mathf.Clamp(currentHP - 10, 0, maxHP);
front.fillAmount = currentHP / maxHP;
}
if(Input.GetKeyDown(KeyCode.Alpha2)){
currentHP = Mathf.Clamp(currentHP + 10, 0, maxHP);
front.fillAmount = currentHP / maxHP;
}
}
}
如果你更喜欢视屏的话(我也是学习的这个视频)点击这里