在Unity3D中,使用Time.DeltaTime不会导致帧速率独立

时间:2013-08-07 17:36:25

标签: time unity3d frame-rate timedelta

我试图在一段确定的时间内在某个指定距离上搜索某些项目。我正在使用Time.DeltaTime来实现帧速率独立性。然而,当在一个非常高性能的功能的帮助下强制滞后(将帧速率降低到理论上的10-15fps)时,我的对象移动得比它们应该慢得多,即使它们应该在恒定时间内移动,与帧速率无关(它们需要大约两倍,4s而不是2s。

更奇怪的是,计算出的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);
    }

1 个答案:

答案 0 :(得分:1)

如果您的最大允许TimeStep足够高,请检入您的项目时间设置(在编辑 - >项目设置 - >时间下)。此值应足够高,以允许您所需的最小FPS。例如,Max.Timestep为0.1将全部为10FPS。