在项目线上运营时,QA发现在某些机型上,一些显示时间的功能总是比实际的时间慢,而且时间越久相差就越多。
在通过查验,把问题定在了Maximum Allowed Timestep和Time.deltaTime。
原因
项目在lua层的定时器是通过Time.deltaTime进行封装的。Maximum Allowed Timestep的值设置在了0.1秒,当某次Update的时间超过0.1时,
Time.deltaTime的时间其实还是0.1,因而导致比实际的时间慢了。
解决方案
使用Time.unscaledDeltaTime替换Time.deltaTime来实现定时器。
疑问
为什么不把Maximum Allowed Timestep的值设置到足够大来解决这个问题呢?
为了解决这个疑问,必须要搞清楚Maximum Allowed Timestep这个值的作用。
Maximum Allowed Timestep
描述
A framerate-independent interval that caps the worst case scenario when frame-rate is low.
Physics calculations and FixedUpdate() events will not be performed for longer time than specified.
独立于帧速率的间隔,当帧速率较低时,可覆盖最坏情况。
物理计算和FixedUpdate(&#