根据Unity文档,在固定时间步骤中调用FixedUpdate。当我们在FixedUpdate回调中输出time.Deltatime时可以看到这一点。
但是,当我尝试在FixedUpdate回调中使用.Net时间系统(即TimeDate.now.millisecond)检查deltatime时,deltatime的输出不是常量。
我怀疑Unity3d使用的时钟与我的电脑时钟不一样。但我不确定我是否正确。有谁知道这个的原因?
谢谢
注意:主要问题是为什么使用.NET DateTime.now捕获连续的FixedUpdate()之间的间隔时间会产生不一致的时间步长,同时使用Time.Deltatime显示一致的时间步长。
答案 0 :(得分:0)
请检查this。
FixedUpdate:通常比Update更频繁地调用FixedUpdate。 如果帧速率较低,则可以每帧调用多次 如果帧速率是,则根本不能在帧之间调用 高。所有物理计算和更新都会立即发生 FixedUpdate。在FixedUpdate中应用移动计算时, 您不需要将您的值乘以Time.deltaTime。这是 因为FixedUpdate是在一个可靠的计时器上调用的,独立于 帧率。
在图像中,您可以在FixedUpdate State附近阅读:
如果固定,物理周期可能每帧发生一次以上 时间步长小于实际的帧更新时间。
如果您需要在FixedUpdate中查看时间,则应使用Time.fixedDeltaTime。