一、延迟函数是什么
/*
* 延迟函数顾名思义
* 就是会延时执行的函数
* 我们可以自己设定延时要执行的函数和具体延时的时间
* 是Mono Behaviour基类中实现好的方法
*/
二、延迟函数的使用
1.延迟函数
* Invoke
* 参数一:函数名 字符串
* 参数二:延迟时间 秒为单位
代码如下(示例):
Invoke("DelayDoSomething", 5);//这个没办法传参如果要延时由参数的函数,要进行一次封装
private void DelayDoSomething()
{
print("延时打印");
TextFunt(2);
t.TestFunt(3);
}
//在无参方法里去调用有参函数
//注意:
//1-1.延时函数第一个参数传入的是函数名字符串
//1-2.延时函数没办法传入参数 只有包裹一层
//1-3.函数名必须是该脚本上申明的函数
2.延迟重复执行函数
* InvokeRepepeating
* 参数一:函数名字符串
* 参数二:第一次执行的延迟时间
* 参数三:之后每次执行的间隔时间
代码如下(示例):
InvokeRepeating("DelayRe", 2, 1);
//注意:
//它的注意事项和延时函数一致
3.取消延迟函数
取消该脚本上的所有延迟函数的执行
//CancelInvoke();
//3-2指定函数名取消
//CancelInvoke("DelayDoSomething");
//只要取消了指定延迟 不管之前该延迟开启了多少次 都会同一取消
4.是否存在延迟函数
if (IsInvoking())
{
print("存在延迟函数");
}
if (IsInvoking(("DelayRe")))
{
print("存在延迟函数DelayRe");
}
三.延迟函数受对象失活销毁影响
延迟函数受对象失活销毁影响
//脚本依附对象失活或者脚本失活
//延迟函数可以继续执行 不会受到影响
//脚本依附对象销毁或者脚本移除
//延迟函数无法继续执行
总结
// 继承NonoBehavior的脚本可以使用延时相关函数
// 函数相关
// Invoke 延时函数
// InvokeRepeating 延时重复函数
//CancelInvoke止所有或者指定延时函数
// IsInvoking 判断是否有延时函数待执行
// 使用相关
// 1.参数都是函数名,无法传参数
// 2.只能执行该脚本中申明的函数
//13.对象或脚本失活无法停止延时函数执行,
//对象才会停止或者代码停止