U2L6——延迟函数
U2L6——延迟函数
本章代码关键字
1 | Invoke() //延迟执行函数,第一个参数填入无参函数字符串,第二个参数填入延迟时间,将按照设定延迟执行无参函数,无法延迟执行有参函数 |
延迟函数
延时函数顾名思义,就是会延时执行的函数
我们可以自己设定延时要执行的函数和具体延时的时间
这是MonoBehaviour
基类中实现好的方法
这个属于MonoBehaviour
基类的重要方法,之前的重要方法看这里 -> MonoBehaviour
继承MonoBehaviour
的脚本可以使用延时相关函数
参数都是函数名,无法传参,只能执行该脚本中申明的函数
对象或脚本失活无法停止延时函数执行,只有销毁组件或者对象才会停止或者通过代码停止
延迟函数的作用
延迟函数:Invoke
- 参数一:函数名 字符串
- 参数二:延迟时间 秒为单位
1 | Invoke("DelayDoSomething", 5); |
注意:
延时函数第一个参数传入的是 函数名字符串!!!
延时函数没办法传入参数 只有包裹(封装在无参函数里)一层!!!
函数名必须是该脚本上申明的函数!如果需要调用外部的函数,需要封装到自己的函数里
延迟重复执行函数
延迟重复执行函数:InvokeRepeating()
- 参数一:函数名字符串
- 参数二:第一次执行的延迟时间
- 参数三:之后每次执行的间隔时间
1 | InvokeRepeating("DelayRe", 5, 1); |
注意:注意事项和延迟函数一致
取消延迟函数
取消该脚本上所有延时函数执行
1 | CancelInvoke(); |
指定函数名取消
填入参数则指定参数对应的延迟函数取消,只要取消了指定延迟 不管之前该函数开启了多少次 延迟执行都会统一取消
1 | CancelInvoke("DelayDoSomething"); |
判断是否有延迟函数
1 | if (IsInvoking()) |
延迟函数受对象失活销毁影响
- 脚本依附对象失活, 延迟函数可以继续执行
- 脚本依附对象销毁或者脚本移除, 延迟函数无法继续执行
1 | private void OnEnable() |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!