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()即可)
- 脚本衣服对象销毁或者脚本移除,延迟函数不能执行