首页 > 其他分享 >UGUI血条渐渐减掉实现

UGUI血条渐渐减掉实现

时间:2023-01-05 13:38:37浏览次数:251  
标签:血条 减掉 hps spcd cooling 冷却 fillAmount UGUI


好久没写文章了。那天有人问我游戏人物血条如何慢慢减掉。今天写一下吧。首先上个动态图,看效果:

更多内容请关注微信公众号:unity风雨路

UGUI血条渐渐减掉实现_Time

 

 

在之前的文章中讲过如何实现技能冷却的效果(上图中技能冷却效果),血条的慢慢减小原理和技能冷却的是一样的。

 

 

 

下面是具体步骤: 

 

1.首先先新建一个scrollbar 作为血条,然后把 Handle的颜色改成红色,并且把ImageType改成Filled.,把填充方式改成水平的(见下图:)


UGUI血条渐渐减掉实现_技能冷却_02

 



2.然后开始用脚本控制血条

我脚本绑定的位置是技能冷却的图片,然后把Handle拖到指定位置(如下图:)

UGUI血条渐渐减掉实现_Image_03

 


技能冷却代码和血条渐渐减小代码如下

 

(代码中写了详细的注释这里不再赘述):

 

using UnityEngine;
using System.Collections;
using UnityEditor;
using UnityEngine.UI;
public class skillcd : MonoBehaviour
{
public Image hps;
private Image spcd;
private bool cooling, hpstart;
private float hurt = 0.2f, all = 1;
// Use this for initialization
void Start()
{
hps.fillAmount = 1f;//血量

spcd = this.GetComponent<Image>();//获取组件方法
spcd.fillAmount = 0;//冷却值
}

// Update is called once per frame
void Update()
{
if (cooling == false && Input.GetKeyDown(KeyCode.R))//放技能
{

hpstart = true;
spcd.fillAmount = 1f;
cooling = true;//冷却条件


}

if (cooling)
{

spcd.fillAmount -= 0.2f * Time.deltaTime;
if (spcd.fillAmount < 0.01f)//冷却完毕
{
spcd.fillAmount = 0;
cooling = false;
}
}


//血量逻辑开始
if (hpstart)
{
Debug.Log("血量:" + hps.fillAmount);

hps.fillAmount = (hps.fillAmount -= 0.1f * Time.deltaTime) * hps.fillAmount / (hps.fillAmount);

if (hps.fillAmount <= (all - hurt))//当前血量值 小于等于 目标血量值
{
Debug.Log("ting");

hpstart = false;
all = hps.fillAmount;//总血量值 被赋值 当前血量值
}

Debug.Log("血量2:" + hps.fillAmount);
}
}
}

 

就这样就实现了这个功能,So Easy!

UGUI血条渐渐减掉实现_血条_04



 

 

标签:血条,减掉,hps,spcd,cooling,冷却,fillAmount,UGUI
From: https://blog.51cto.com/u_8378185/5990805

相关文章

  • UGUI之Scroll view
    Scrollview是一个方便制作滑动的组件。游戏里背包等经常用到的。效果如下:之前说过自己来制作滑动器的方法下面讲的是一个更为简单的方法:使用ScrollView组件。方法如下:1.首......
  • unity4.6之UGUI之与代码结合及Text讲解
    UGUI与以往的NGUI不同之处很多其中一大特点就是UGUI把精灵图集的功能取消了。首先是我们看看UGUI的UI界面:其中有项是Text...也就是本节要讲的内容;说到text不得不说的是字......
  • UGUI之 Text内容长度限定
    在UGUI里Text显示的字符有时候需要个数限制。只需将下面代码绑定到text上就可以了。namelenth是用来接收文字个数的。在其他脚本里只要设置namelenth这个值就可以。由于Setn......
  • UGUI 全方位了解
    随着unity3d4.6~5.x+新UI系统终于与大家见面了。这篇文章将不会介绍如何使用按钮、滚动条之类的UI控件,这些内容可以参考​​ UnityManual​​;这篇文章的重点是,如......
  • Unity UGUI图文混排源码(一)
    我从一开始想到的图文混排的概念都是通过文字间的空隙去粘贴一张图片,这样确定图片前面文字的最后一个位置变成了最主要的参数,接下来就给出两种解决方案首先,先发UGUI源码的一......
  • Unity UGUI基础之Text
    Text作为UGUI最基础的控件以及最常用的控件,它在项目中的应用绝对可以算是最多的,任何一个UI界面可以说都离不开它,它的基本属性如下:一、recttransform组件:recttransform(矩形......
  • Unity UGUI实现图文混排
    目前在unity实现图文混排的好像都是通过自定义字体然后在文本获取字符的位置,用图片替换掉图片标签,这样对于支持英文来说,并没有什么影响。然后对于中文来说就是一个相当麻烦......
  • Unity UGUI无限列表(Infinite List)
    更新日期:2020年10月16日。Github源码:​​​[点我获取源码]​​索引​​InfiniteList​​​​使用​​​​创建InfiniteListScrollRect​​​​InfiniteListScrollRect参数......
  • Unity UGUI图文混排源码(三) -- 动态表情
    这里是根据图文混排源码(二)进一步修改的,其他链接也不贴了,就贴一个链接就好了,第一次看这文章的同学可以先去看看其他几篇文章1.首先来一个好消息,在最新版本的图文混排中,终于......
  • Unity UGUI
    超详细的基础教程传送门:(持续更新中)UnityUGUI的教程好少,幸亏找到一个UGUI的Demo,看了几个例子,以下是一些简单的学习笔记:1.导入UI图片资源2.设置参数:            ......