【发布时间】:2013-08-07 17:36:24
【问题描述】:
我正在尝试在确定的时间内将某些物品穿过特定的指定距离。我正在使用 Time.DeltaTime 来实现帧率独立。但是,当借助性能非常密集的函数(将帧速率降至理论上的 10-15fps)强制延迟时,我的对象移动速度比应有的慢得多,即使它们应该在恒定时间内移动,与帧速率无关(它们需要大约两倍长,4 秒而不是 2 秒)。
更奇怪的是计算出的 FPS (1.0f/Time.deltaTime) 保持不变(大约 66 FPS)。当我显示 lerp 完成所需的时间(将 time.deltaTimes 相加)时,它显示 2 秒(这是所需的时间,但实际花费的时间至少是该时间的 2 倍)。
谁能帮我弄清楚发生了什么?
var startTime = 0.0;
while(startTime < 2.0){
yield;
startTime += Time.deltaTime;
transform.localPosition = Vector3.Lerp(Vector3(0.0,0.0,0.0), Vector3(0.0,10.0,0.0), startTime/2.0);
}
【问题讨论】:
-
在你应用增量的地方显示一些代码?
-
代码看起来应该可以工作。 Time.timeScale 的值是多少?
标签: time unity3d frame-rate timedelta