UE4 C++使用Timer实现Delay功能

关山月

今天用到了延时功能,实现蓝图中的Delay功能,总所周知,蓝图里面很简单,可以直接用,设置一个以秒为单位的时间就可以了,而且是异步的,这点很重要。

一开始走了弯道,使用Sleep函数实现,如下图所示:

broken image

但是运行之后发现,Sleep是整个进程停止,而不能达到进程正常运行,但是某几步操作延后执行的目的,所以这个方法Pass掉!

然后,我尝试着使用Timer来实现Delay功能,完美的达到了我想要的效果,下面分享下用法:

首先,在头文件定义一个FTimerHandle句柄,用来标识该定时器,用于延时之后的删除操作:

声明Timer句柄

其次,声明并实现一个函数,将延时后要执行的操作放到该函数中执行;

broken image

设置Timer,0.1s后执行Delay函数

再次, 在需要执行延时操作的地方将上面声明的句柄设置进去,并指定第二步声明的函数,延时时间等;

计时结束后,在Delay中清除计时器

好了,很简单吧,三步轻松实现异步Delay功能,接下来看你的了!