前言
最近项目上用到了使用技能的功能,那么技能使用完后进入Cd时间,想要到达王者荣耀那种黑色遮罩的倒计时效果。
一、实现前的准备
1.创建遮罩
创建一个与技能图标大小一致的半透明黑色圆形图片
2.更改Image Type
将Image 组件中的Image Type更改成Filed,并将其Fill Amount拖动至1。
二、编写代码
1.代码原理
主要是通过倒计时的减少来改变Fill Amount的值 ,当Fill Amount的值到达0时,还需将Image 进行SetActive(false)的操作。
2.代码
代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class SkillTime : MonoBehaviour
{
public float CDTime;
private Image image;
private float MaxTime;
void Start()
{
image = GetComponent<Image>();
MaxTime = CDTime;
image.fillAmount = 1;
}
void FixedUpdate()
{
CDTime -= Time.deltaTime;
image.fillAmount = (CDTime / MaxTime);
if (CDTime <= 0)
{
image.fillAmount = 1;
CDTime = MaxTime;
gameObject.SetActive(false);
}
}
}
注释对于变量已经说明清除了,公用化是为了让我更加方便的设置每个技能不同的CD时间
总结
例如:以上就是今天要讲的内容,本文仅仅简单介绍了如何将技能的倒计时效果更好的体现出来,感兴趣的同学甚至可以在其上面加上数字的倒计时。
|