在Unity场景中计算帧率

Joa*_*ana 5 c# frame-rate unity-game-engine

我正在使用Unity和Vuforia扩展来开发增强现实项目。我是C#的新手,但是我正在寻找一种类似于ARToolKit的方法getFrame()实际上我什么都没找到。

我的问题是:

  1. 是否可以计算场景运行的帧速率?
  2. 我应该使用哪个场景对象来跟踪帧率?

mak*_*iuk 6

就这么简单:

public float avgFrameRate;

public void Update()
{
    avgFrameRate = Time.frameCount / Time.time;
}
Run Code Online (Sandbox Code Playgroud)

将此代码放入any 中MonoBehaviour并将其附加到GameObject场景层次结构中的any 中。

请注意:这只会为您提供平均帧速率。对于更新的帧速率,其他答案已经解决了实现这一目标的有效方法。


poo*_*kie 6

这里的答案都没有考虑到可以在 Unity 中修改的事实timescale,如果可以的话,上述所有方法都将是错误的。这是因为Time.Delta时间受 的影响timescale

因此,您需要使用Time.unscaledDeltaTime

int fps = 0;
void Update () {
    fps = (int)(1f / Time.unscaledDeltaTime);
}
Run Code Online (Sandbox Code Playgroud)