欢迎光临散文网 会员登陆 & 注册

二十、蓝图与C++:Timer计时器

2023-03-24 08:34 作者:爱玩UE5的小哥哥  | 我要投稿

Timer(计时器)和Delay(延时)是开发过程中很常用的功能,常用来做一些需要定时或延迟执行的功能.

一.蓝图中的Timer

1.Delay(延时节点)

延时N秒后执行逻辑

2.Retriggerable Delay(可触发式 延时节点)

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

3.Set Time by Event

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

上面的计时器5s是为了验证5s后执行自定义事件

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文件

编辑器操作


二十、蓝图与C++:Timer计时器的评论 (共 条)

分享到微博请遵守国家法律