[]关于逻辑贞更新间隔机制、时间和其他一些Timer相关的问题

问一下
1.当使用Laya.timer.frameLoop时,是否前一贞到这一贞之间的deltaTime只有通过主动从laya.utils.Timer里去获取delta值才能得到?还是说有类似Unity3D中继承并override一个特定类(Unity3D中的MonoBehaviour)中的特定方法(Update或FixedUpdate等方法),引擎就能自动按特定间隔调用该类实例的该方法,来完成逻辑更新的工作?

2.这个laya.utils.Timer.delta的API参考页面中的描述是“两次时针直接的时间间隔。”,这句话看不懂,到底这个得到的是两次frameLoop触发之间的delta时间,还是前一次获取这个delta值到当前获取delta值之间的时间?
 
3.Laya.timer.loop和laya.utils.Timer.delta值是否受Laya.utils.Timer.scale的影响?
即假设我scale填了0.5
如果Laya.timer.loop方法调用时,时间间隔delay参数填了1000,也就是我期望1000毫秒调用一次某个指定方法,那么当真实世界中的时间度过2秒整后,到底这个方法会被调用1次(已缩放时间驱动式调用),还是2次(未缩放时间驱动式调用)。如果是后者也就是会被调用到2次的情况,期间如果这个指定方法去取laya.utils.Timer.delta所得到的值,到底是会取到500然后第二次取到1000,还是取到1000然后第二次取到2000(需要自己再乘scale)?
 
 
已邀请:

cuixueying

赞同来自: SONIC3D unnamedzc

第一个问题:
  Laya.timer.frameLoop的delta值是自己设置的,并非从laya.utils.Timer下获取得到的。该方法以帧率为单位循环执行。项目运行默认的frameRate是60帧,Timer下如果delta值为1,就表示每一帧执行一次,依次类推,delta值越大,执行的频率越慢。

第二个问题:
  两次时针直接的时间间隔:可以理解为第一次执行与第二次执行之间的时间隔时间,这个值一般都是开发者自己去手动设置的,并非获取得来的。

第三个问题:
Laya.utils.Timer.scale(时针缩放)会影响整体的时间缩放,并非是单个的Timer计时器
如果设置了Timer.scale,同时执行了Laya.timer.loop为1秒执行一次,这时候Laya.timer的执行速率会变慢。

 

unnamedzc

赞同来自:

学习了

要回复问题请先

商务合作
商务合作