UE4 C++使用Timer实现Delay功能
今天用到了延时功能,实现蓝图中的Delay功能,总所周知,蓝图里面很简单,可以直接用,设置一个以秒为单位的时间就可以了,而且是异步的,这点很重要。
一开始走了弯道,使用Sleep函数实现,如下图所示:
但是运行之后发现,Sleep是整个进程停止,而不能达到进程正常运行,但是某几步操作延后执行的目的,所以这个方法Pass掉!
然后,我尝试着使用Timer来实现Delay功能,完美的达到了我想要的效果,下面分享下用法:
首先,在头文件定义一个FTimerHandle句柄,用来标识该定时器,用于延时之后的删除操作:
声明Timer句柄
其次,声明并实现一个函数,将延时后要执行的操作放到该函数中执行;
设置Timer,0.1s后执行Delay函数
再次, 在需要执行延时操作的地方将上面声明的句柄设置进去,并指定第二步声明的函数,延时时间等;
计时结束后,在Delay中清除计时器
好了,很简单吧,三步轻松实现异步Delay功能,接下来看你的了!
知乎地址:https://zhuanlan.zhihu.com/p/424230159