1

我正在尝试在确定的时间内跨越特定指定距离的某些物品。我正在使用 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);
    }
4

1 回答 1

1

如果您的最大允许时间步长足够高,请检查您的项目时间设置(在编辑->项目设置->时间下)。该值应该足够高,以允许您想要的最低 FPS。例如,Max.Timestep 为 0.1 将允许 10FPS。

于 2013-08-07T18:02:06.017 回答