• 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)判断是否有延迟函数

    1. if (IsInvoking()) {
    2. print("存在延时函数");
    3. }
    4. if (IsInvoking(函数名)) {
    5. print("存在延时函数XXX");
    6. }

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

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

  • 相关阅读:
    大三第三周学习笔记
    UE5 官方案例LyraStarter 全特性详解 5.LyraPlayerStart
    数据结构与算法编程题10
    自定义hooks
    学习大数据DAY33 Flask 库 API 开发介绍,OS 库,pandas 库和简单爬虫
    深度学习进行图像识别:技术详解与实践
    ffmpeg之去除视频水印
    [Bread.Mvc] 开源一款自用 MVC 框架,支持 Native AOT
    ICC2: keepout、spacing_rules、clock_cell_spacing
    加密和验签
  • 原文地址:https://blog.csdn.net/Go_Accepted/article/details/127114647