Unity延时函数

1、什么是延迟函数

延时执行的函数,可以自己设定延时要执行的函数和具体延时的时间,是Monobehaviour基类中实现好的方法

2、延迟函数的使用

(1)延时函数

Invoke(函数名,延迟时间)

其中延迟时间以秒为单位

注意:

  •  延时函数第一个参数传入的是函数名字字符串
  • 延时函数没办法传入参数,只有包裹一层

例如:DelayDoSomething()是Invoke执行的延时函数,然后在DelayDoSomething()中调用TestFun(int i)函数即可

  • 函数名必须是该脚本上声明的函数(private, public都可以),如果想延时调用其他脚本的函数,也是需要包裹一层
  • 不要在Update()中调用延迟函数

(2)延迟重复执行函数

InvokeRepeating(函数名,延迟时间,间隔时间)

该函数注意事项与(1)一致 

Invoke()进行递归调用,可以实现和InvokeRepeating()相同的效果

(3)取消延迟函数

  • 取消该脚本上的所有延迟函数
CancelInvoke();
  • 指定函数名取消
CaencelInvoke("DelayDoSomething");

如果Invoke和InvokeRepeating都输入同一个函数名,那么只要取消了,该函数的所有延时调用都会被取消;如果取消的函数没有被延时调用,也不会报错。

(4)判断是否有延迟函数

if (IsInvoking()) {
    print("存在延时函数");
}

if (IsInvoking(函数名)) {
    print("存在延时函数XXX");
}

3、延迟函数对象失活销毁影响

  • 脚本依附对象或者脚本失活,延迟函数可以继续执行(如果想在脚本/对象失活时不能调用,那么在OnEnable中Invoke(),在OnDisable中CancelInvoke()即可)
  • 脚本衣服对象销毁或者脚本移除,延迟函数不能执行

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值