在Unity编辑器中限制游戏窗口的帧率

3
我想把我的FPS限制在30帧,因为我不需要更多的帧数。我已经尝试将Application.targetFramerate设置为30,以及QualitySettings.vSyncCount设置为0。但是FPS始终保持接近60。我还尝试将vSyncCount设置为2,它也没有起作用。
如何在编辑器游戏视图中限制FPS?(注意:不是场景视图)
我使用的是Linux系统,Unity版本为2017.1.1。

1
我从来没有能够在Start()或Awake()中使其工作。我设法通过启动一个协程,在Start()之后等待1秒,然后设置Application.targetFramerate来使其工作。注意:vSyncCount必须为0。 - undefined
我也试过那个,但对我来说也不起作用。即使在更新中设置了目标帧率也不行。 - undefined
1
嗯...尝试这个有点奇怪,但是看了一些论坛上的帖子,有人说如果将脚本附加到相机上,它可能无法正常工作。他们必须将其附加到一个空的游戏对象上。另外,如果你的项目中有任何插件,其中一些可能会导致你的数值重置。我建议在Update函数中使用debug.log来检查这两个数值是否开始时符合你的要求,然后再进行更改。 - undefined
刚刚尝试了一个单独的GO,可惜也没有起作用。我记录了两个变量,它们都显示了正确的值。看来这是一个我无法解决的错误.. 不过还是谢谢你的思考。 - undefined
1
哎呀,嗯...很抱歉这个对你不起作用 :/ 请确保向Unity提交错误报告,以便他们能够修复它! - undefined
1
我意外地找到了一个解决方法。在设置vSyncCount和targetFramerate之前调用Screen.setResolution(w,h,false);可以在编辑器中起作用。太棒了 :) - undefined
1个回答

8
如果在调用 Screen.setResolution 之前,目标帧率和垂直同步计数在编辑器游戏视图中会被正确地执行。
    Screen.SetResolution (1920, 1080, false);
    QualitySettings.vSyncCount = 0;
    Application.targetFrameRate = 30;

很不幸的是,当我升级到2017.3版本后,这个功能停止工作了。 - undefined
1
实际上它仍然可以工作,但是目标帧率似乎与实际帧率不太接近。因此,例如将其设置为低于30的值以达到30 fps。E: SetResolution似乎没有起到任何帮助作用,至少现在是这样。只需进一步降低目标帧率,似乎实际帧率超过了目标帧率。 - undefined
是的!我在2021年1月尝试过这个方法,对于我的Macbook来说很有效。之前让我感到疯狂的是,我的Macbook一直过热,并且不断以300多帧的速度运行!现在我的游戏正在以约40帧的流畅速度运行。谢谢。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接