Unity中的deltaTime发生了什么变化?

时间:2016-12-25 19:13:35

标签: c# unity3d frame-rate

首先,我想提一下,我在Unity引擎中制作了我的第一个项目,所以问题可能非常愚蠢。据我所知,Time.deltaTime和Time.fixedDeltaTime存储帧之间的大致时间(图形和物理)。我想在我的游戏中实现一个简单的fps计数器。功能如下:

void FPS_Counter()
 {
     float frequency_physics = 1f/Time.fixedDeltaTime;
     float frequency_graphics = 1f/Time.deltaTime;
     fps.text = "Phys: " + frequency_physics.ToString("N0") + "\n" + "Graph: " + frequency_graphics.ToString("N0");
 }

在Update()中调用FPS_Counter()。对于固定和#34;正常"脚本总是输出50 [hz]的值。三角洲时间。似乎频率锁定在50 fps。这是正常行为吗? Unity会在50hz时锁定调用FixedUpdate()和update()吗?如果是这样,我可以在某处更改此值以查看我能获得多少fps吗?

1 个答案:

答案 0 :(得分:0)

为什么FPS被锁定到特定速率可能有很多原因。但是,Time.deltaFixedTime变量始终锁定为特定更新值。默认情况下,每次固定更新之间为0.02秒。

如果你想要一个FPS计数器进行调试,我可以给你一个参考:http://wiki.unity3d.com/index.php?title=FramesPerSecond

为什么帧率被锁定的原因可能是,@ UnholySheep说,Vsync,计算机限制(虽然它很可能会反弹)和其他一些原因。

https://docs.unity3d.com/Manual/class-QualitySettings.html 这是一个链接,你可以在哪里关闭VSync,如果它应该打开。

相关问题