我是靠谱客的博主 聪慧云朵,最近开发中收集的这篇文章主要介绍Unity3D 血条的渐变效果效果图一、准备工程项目二、新建脚本总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Unity3D 血条的渐变效果

  • 效果图
  • 一、准备工程项目
  • 二、新建脚本
    • 1.新建test脚本挂在BG上
    • 2.新建Player脚本挂在Player上
  • 总结


效果图

此效果可结合多层血条特效,效果更佳
点击此处可查看多层血条特效 添加链接描述
在这里插入图片描述

提示:以下是本篇文章正文内容,下面案例可供参考

一、准备工程项目

在这里插入图片描述

二、新建脚本

1.新建test脚本挂在BG上


using UnityEngine;
using UnityEngine.UI;

namespace HKZ
{
    public class Test : MonoBehaviour
    {
        public static Test Instance;
        private Image imgRed;
        private Image imgYellow;
        private float currentPrg = 1f;
        private float targetPrg = 1f;

        public float AccelerHpSpeed = 0.5f;//渐变速度

        private void Start()
        {
            Instance = this;
            imgRed = transform.Find("imgRed").GetComponent<Image>();
            imgYellow = transform.Find("imgYellow").GetComponent<Image>();
            imgRed.fillAmount = 1;
            imgYellow.fillAmount = 1;
        }

        private void Update()
        {
            BlendHp();
            imgYellow.fillAmount = currentPrg;
        }

        public void SetHpVal(int oldVal, int newVal, int sum)
        {
            currentPrg = oldVal * 1.0f / sum;
            targetPrg = newVal * 1.0f / sum;
            imgRed.fillAmount = targetPrg;
        }

        private void BlendHp()
        {
            if (Mathf.Abs(currentPrg - targetPrg) < AccelerHpSpeed * Time.deltaTime)
            {
                currentPrg = targetPrg;
            }
            else if (currentPrg > targetPrg)
            {
                currentPrg -= AccelerHpSpeed * Time.deltaTime;
            }
            else
            {
                currentPrg += AccelerHpSpeed * Time.deltaTime;
            }
        }
    }
}

2.新建Player脚本挂在Player上

代码如下(示例):

using UnityEngine;

namespace HKZ
{
    public class Player : MonoBehaviour
    {
        private int hp = 1000;
        private int oldHp;
        private int newHp;
        private int hurt = 300;

        private void Start()
        {
            oldHp = hp;
        }

        private void Update()
        {
            if (Input.GetMouseButtonDown(0))
            {
                newHp = oldHp - hurt;
                Test.Instance.SetHpVal(oldHp, newHp, hp);
                oldHp = newHp;
            }
        }
    }
}

总结

在这里插入图片描述

最后

以上就是聪慧云朵为你收集整理的Unity3D 血条的渐变效果效果图一、准备工程项目二、新建脚本总结的全部内容,希望文章能够帮你解决Unity3D 血条的渐变效果效果图一、准备工程项目二、新建脚本总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部