Unity TimeScale 和 deltaTime unscaledDeltaTime用法与原理详解
2022-09-18 16:18 作者:DarkDreamStudio | 我要投稿
最近做了个通过update累加进度条的自定义触发器,被各种deltaTime到底啥意思搞得头疼,经过一番折腾终于摸明白了原理
参考案例:https://blog.csdn.net/SerenaHaven/article/details/78976628

先放结论
对于不同需求,update中的累加值应该怎么用deltaTime:
1、累加速度与循环速度直接相关,且无平滑:
直接写逻辑
2、只与现实时间相关,不受timeScale影响:
累加值需要乘以unscaledDeltaTime(在FixedUpdate里会自动取fixedUnscaledDeltaTime的值所以用的时候可以不用特意区分)
3、与Unity时间相关,受timeScale正影响:
累加值需要乘以deltatime(在FixedUpdate里会自动取fixedDeltaTime的值所以用的时候可以不用特意区分)
便于记忆的deltaTime命名特性总结:
基础共性:将累加值的含义从每次变化这么多变成每秒变化这么多
非unscaled共性:每秒定义——被timeScale修正后的Unity时间
unscaled共性:每秒定义——现实时间
只看怎么用的话结论其实比较简单,但如果要搞明白背后的原理就很头疼

以下为头疼内容,太长不看党可以走了
先看代码的执行结果:

逻辑分析:
便于理解考虑,update所在的循环简化称为渲染循环
