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即可
上一篇: Tex2DArray的使用举例