欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

unity(UGUI)技能冷却 代码详解

程序员文章站 2022-04-03 08:51:52
...
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
///
/// </summary>
public class filedskill : MonoBehaviour
{
    public float f = 3;//决定冷却时间3秒
    public bool b;//作为触发条件
    public float timer=0;//判断1秒
    public void Update()
    {
        this.gameObject.GetComponent<Button>().onClick.AddListener(onclick);//当点击这个图片的时候的时候触发的事件是调用函数onclick,将b=true
        if(Input.GetKeyDown(KeyCode.F))//如果键盘按下了F效果也是将b=ture
        {
            b = true;
        }
        if (b)//如果b=true,则执行
        {
            timer += Time.deltaTime;//经过了1S,每当timer累加到1则表示经过了1秒,累加到2表示经过了2秒.......
            this.gameObject.GetComponent<Image>().fillAmount = (f - timer) / f;//3秒-x秒/3秒
        }
        if (this.gameObject.GetComponent<Image>().fillAmount==0)//当技能冷却时间为0的时候,就是无冷却的时候
        {
            b = false;//先停止timer的累加和,技能冷却时间的减少
            this.gameObject.GetComponent<Image>().fillAmount = 1;//先停止之后,将fillamount和timer变1,why?timer变为0方便下次点击后使用,
                                                                 //fillamount变为1一是:若为0则死循环静止,二是:变为1方便计算冷却
            timer = 0;
        }

    }
    public void onclick()
    {
        b = true;
    }
}

用法:

1.unity中创建一个ui--image---设置为filled---添加组件button

2.将上面脚本拖给此image即可

相关标签: unity3d