【问题标题】:FPS drop after few minutes in the Android game在 Android 游戏中几分钟后 FPS 下降
【发布时间】:2018-11-06 16:56:24
【问题描述】:

我制作了一款非常简单的超休闲游戏,一切正常,但经过几分钟的游戏后,即使手机发热,fps 也会从 60 变为 50。类似于this 问题。我尝试了分析,但看不到任何东西。甚至尝试删除一些 UI 元素,但仍然没有运气。尝试了各种垂直同步设置。另外,我使用this 来显示fps。即使没有它,也可以看到滞后。即使我只是打开游戏什么也不做,5分钟后fps会变成50。如果使用主页按钮返回并重新进入游戏,那么fps会再次变成60。使用统一 2018.2.6f1。在我的其他 Android 游戏中从未遇到过这种行为。

基本上,这是一个错误的自定义顶点着色器,它被应用到一个平面上以改变随着时间的推移改变颜色的背景颜色。我没有使用移动顶点颜色,因为我没有得到想要的输出。但现在我会坚持使用移动设备。

【问题讨论】:

  • 如果它像你说的那样是一个非常简单的游戏,请发布每个脚本。问题可能来自您的脚本之一。如果不看脚本,我认为我们真的做不了什么......
  • 其实有多个脚本,很长。但我确实尝试过审查它们,评论更新。禁用..但即使我打开游戏并让它闲置而没有运行任何代码,我仍然会在 5 分钟后降低 fps。我确实有一个协程,但它在游戏结束后。我也有 google ad mob 和一个本地共享插件。我确实有一些 ui 按钮,并且在启用面板等时看到大约 2-3 帧丢失。还有为什么在我重新进入游戏后它会回到 60fps。将不胜感激任何提示
  • 你能做一个深度剖析吗?如果是这样,那说明什么占用了这么多时间?
  • 我试过了,但它不会显示任何东西,没有尖峰,没有什么,因为我正在分析 android 设备。分析器中的 fps 与手机的 fps 不匹配。不确定这是否是统一的错误。目前,我正在尝试评论和禁用/删除脚本。还没有运气。
  • 这是什么游戏?你使用什么技术?您是否在某个地方声明了一个不断增加的列表,您可能会循环访问?如果您需要帮助,您真的应该提供一些脚本和更多信息。

标签: c# android unity3d


【解决方案1】:

您观察到的两种症状很可能是相关的。 手机在使用全功率时可能会发热,这反过来又会启动节流功能,从而降低性能

【讨论】:

    【解决方案2】:

    我遇到了完全相同的问题。我试图修复它很长一段时间。您谈到了您使用的错误着色器。这是解决我们问题的关键。

    我使用 2 色渐变作为 BG,所以我也必须使用着色器。由于我在编写“着色器代码”方面是一个完全的菜鸟,我不得不在互联网上找到一些东西。这是我最大的失败)

    要解决此问题并删除此 fps 下降,您应该从场景中删除附加到它的渐变和着色器。并尝试为 2D 游戏找到更优化的着色器(或者您可以随时编写自己的 c:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      相关资源
      最近更新 更多