二十、蓝图与C++:Timer计时器
Timer(计时器)和Delay(延时)是开发过程中很常用的功能,常用来做一些需要定时或延迟执行的功能.
一.蓝图中的Timer
1.Delay(延时节点)
延时N秒后执行逻辑

2.Retriggerable Delay(可触发式 延时节点)
延时N秒后执行逻辑,与Delay不同的是:在倒计时结束前再次出触发可以重新倒计时

3.Set Time by Event
每N秒执行一次自定义事件,可循环执行,可执行一次,可暂停/恢复/清除计时器

Time:延时时长
Looping:是否循环 (不循环只执行一次)

另一种绑定方式:CreateEvent
绑定自身类的事件

绑定另一个类的事件


4.SetTimerByFunctionName
这个FunctionName既可以是事件名称也可以是函数名称



5.TimerHandle
SetTimerbyEvent和SetTimerbyFunctionName都会返回一个TimerHandle结构体,通过该结构体我们可以控制计时器的暂停,恢复,清除等


6.实例演示
在一定范围内,每隔一段时间生成一个小球,并且能够自由控制生成/暂停/清除小球的生成



二.C++中的Timer
C++中的SetTimer与蓝图中的Set Timer By Function Name有点类似,都需要一个回调函数,可以通过TimerHandle进行对计时器的暂停/恢复/清除
1.计时器句柄与回调函数

2.绑定回调函数

3.完整代码
.h文件
.CPP文件
运行结果


参数说明:
①TimerHandle(InOutHandle):计时器句柄,对应下图返回的TimerHandle,用于暂停,恢复,清除计时器

②this(InObj):回调函数的所有者,对应下图

着重说明:参数② Object和参数③ 回调函数是有从属关系的,回调函数是Object的成员函数,Object并不是一定要写成this
③回调函数:固定写法:&类型::函数名
&ACPP_Timer::TimerFunction

④InRate:对应蓝图中的延时时长

⑤InbLoop:对应蓝图中的Looping

4.计时器暂停/恢复/清除
暂停
恢复
清除
5.C++复刻蓝图案例
完整代码
.h文件
.CPP文件
编辑器操作


