怎样制作一个血条栏?
普通血条栏:
渐变色血条栏:
缓冲血条栏:
3D场景血条栏跟随玩家移动:
【参考视频】
url:YouTube - How to make a Health BAR in Unity!
url:bilibili -【中文字幕】Unity血条UI设计和受伤缓冲效果
一、制作UI
-
在Canvas下创建一个空物体HP bar,在空物体下方创建3个Image,分别为血条框bar 黑色,最大HP maxHP 白色,和当前HP currentHP 红色。(PS:注意先后顺序以调整显示的图层)
效果:(PS:这里最大HP,即白色部分与红色部分重合没有显示)
-
点击HP bar,添加slider(滑块)组件,进行以下设置,最小值和最大值可以关联血量自行调整。当拖动Value值时,就能实现改变血条的宽度。
效果:拖动Value值
-
创建一个脚本HPbar,拖拽给空物体HP bar
public class HPbar: MonoBehaviour
{
public Slider slider; // 获得Slider对象
public void SetHP(int currentHP)
{
// 设置slider的value为当前血量
slider.value = currentHP;
}
public void SetMaxHP(int maxHP)
{
// 设置slider的最大值,并设置value为最大血量
slider.maxValue = maxHP;
slider.value = maxHP;
}
}
- 创建一个Cube,作为玩家Player进行测试,新建一个玩家脚本Player
public class Player: MonoBehaviour
{
[Header("健康参数")]
[SerializeField]
int maxHP = 100; // 最大血量
[SerializeField]
int currentHP; // 当前血量
public HPbar bar; // 获得HPbar组件引用
private void Start()
{
// 游戏开始时,初始化血量
currentHP = maxHP;
// 设置slider的maxvalue和value值
bar.SetMaxHP(maxHP);
}
private void Update(