UE4 Timer

Timer这个东西在游戏开发里太常用了,大到游戏世界的驱动,小到物体的状态变迁,均有timer的身影。游戏世界虽说是个虚拟世界,但总归是需要时间维度的。在UE4中,Timer的基本作用就是在固定间隔内重复或单次执行某些操作。具体到应用,常见的就是Delay、固定频率刷新某个操作。

UE4中所有的Timer都是由全局类FTimerManager管理。在AActor之外,可以指定任意类型的委托。FTimerManager提供一些函数用来操作Timer,同时这些函数也能用于Timer的委托中,比如可以在一个Timer的委托里新建(删除)另一个Timer。

AActor::GetWorldTimerManager()用来获取当前世界的TimerManager实例。然后通过这个实例调用函数就可以控制Timer了。

一般来讲,你可能还需要一个FTimerHandle来指定具体的Timer。

  • SetTimer

为Timer指定回调函数、间隔时间,是否循环等参数,并启动该Timer,使其开始计时。该函数也可用来重设已有的Timer,此时,计时也将重新开始。

在Blueprint中常见的Delay节点在C++就需要用这个函数指定一个一次性的Timer。

  • ClearTimer

销毁清理指定的Timer,使其不再计时,当然也不会再回调。将SetTimer的间隔时间参数设为<0.f有同样的效果。

  • PauseTimer

暂停指定的Timer,此时Timer停止计时但会保存已经过的时间和剩余时间,直到恢复计时。

  • UnPauseTimer

激活已暂停的Timer。

  • IsTimerActive

获取指定Timer的当前状态(运行/暂停)

  • GetTimerRate

获得指定Timer的当前频率(就是时间间隔参数)。

  • GetTimerElapsed

获得指定Timer的当前间隔内已经计时的时长

  • GetTimerRemaining

获得指定Timer当前间隔内的剩余时长

已经计时的时长 + 剩余时长 = 间隔时间

常用的接口差不多就这些,更多更详细的可以参阅API文档。比如各种SetTimer的重载,更多Timer的状态信息。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值