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

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所在的循环简化称为渲染循环


Unity TimeScale 和 deltaTime unscaledDeltaTime用法与原理详解的评论 (共 条)

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