Unity使用技能后的CD倒计时效果


前言

最近项目上用到了使用技能的功能,那么技能使用完后进入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; //当前技能CD的时间,单位为秒
    private Image image; //自身Image组件
    private float MaxTime; //用于记录CD的最长时间
    // Start is called before the first frame update
    void Start()
    {
        image = GetComponent<Image>();
        MaxTime = CDTime; //CD时间记录
        image.fillAmount = 1; 	//初始化fillAmount
    }

    // Update is called once per frame
    void FixedUpdate()
    {
    //CD时间计算
        CDTime -= Time.deltaTime;  
        image.fillAmount = (CDTime / MaxTime);
        if (CDTime <= 0)  //CD为0时,需要重置fillAmount,并且重置CD时间
        {
            image.fillAmount = 1;
            CDTime = MaxTime;
            gameObject.SetActive(false);
        }
    }
}

注释对于变量已经说明清除了,公用化是为了让我更加方便的设置每个技能不同的CD时间


总结

例如:以上就是今天要讲的内容,本文仅仅简单介绍了如何将技能的倒计时效果更好的体现出来,感兴趣的同学甚至可以在其上面加上数字的倒计时。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值