You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

为何Unity打包为exe后FPS固定60,编辑器中却达200?已关VSYNC

解决Unity打包后FPS固定60的问题

嘿,这个场景我太熟悉了——编辑器里跑的飞起,一打包成exe就锁60FPS,哪怕关了VSYNC也没用。别着急,大概率是这几个地方没设置对,一个个排查:

  • 检查Quality Settings的帧率上限
    这是最常见的原因!Unity的编辑器和打包后的Quality配置可能不一样。打开Edit > Project Settings > Quality,找到你打包用的Quality Level(比如Standalone对应的那个),把Max Frame Rate改成Unlimited或者你想要的数值。很多时候默认打包配置会把这个设成60,编辑器里可能没开限制所以能跑200。

  • 显卡驱动的全局帧率限制
    显卡厂商的驱动面板(比如NVIDIA控制面板、AMD Radeon Software)经常会偷偷给应用设帧率上限。找到你的游戏exe,看看是不是被强制限制了60FPS,改成“由应用程序决定”或者直接取消限制。尤其是笔记本的双显卡,有时候集成显卡的设置会拖后腿。

  • 用代码强制取消帧率限制
    有时候系统或驱动的设置会覆盖Unity的配置,你可以在代码里硬刚:在某个单例的Start()方法里加一行:

    Application.targetFrameRate = -1; // -1表示不限制帧率
    

    或者直接设成你想要的数值比如200,这样能强制Unity忽略外部限制。

  • Windows系统级别的设置干扰

    • 检查Windows的游戏模式:有时候它会自动限制帧率来节省资源,你可以关掉试试(设置→游戏→游戏模式)。
    • 确认显示器刷新率:右键桌面→显示设置→高级显示设置,确保你的显示器刷新率设成了支持的最高值(比如144Hz),虽然编辑器里能跑200,但难保打包后系统没自动切回去。
    • 图形设置里指定高性能GPU:打开Windows设置→系统→显示→图形设置,把你的exe添加进去,设为“高性能”,避免集成显卡限制性能。
  • Player Settings里的隐藏配置
    打开Edit > Project Settings > Player > Resolution and Presentation

    • 确认VSync Count设为Don't Sync
    • Frame Rate设为0(0表示不限制);
    • 试试关掉Optimize Frame Pacing选项,这个功能有时候会强制同步帧率,导致锁60。

一般按这个顺序排查,很快就能找到问题所在。

内容的提问来源于stack exchange,提问作者Víctor Martínez

火山引擎 最新活动