Unity 实现血条缓降效果

编译器

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;
        }

    }
}

如果你更喜欢视屏的话(我也是学习的这个视频)点击这里

猜你喜欢

转载自blog.csdn.net/blastospore/article/details/130692927
今日推荐