简单的 2D Unity 游戏具有周期性抖动

Posted

技术标签:

【中文标题】简单的 2D Unity 游戏具有周期性抖动【英文标题】:Simple 2D Unity Game has periodical jerkiness 【发布时间】:2017-08-12 16:13:03 【问题描述】:

我在 Unity 中使用应用程序 Tiled 制作了一个简单的 2D 游戏,用于 tilemap,但是当我运行它时,屏幕会时不时地跳跃,就像它的 fps 快速下降一样。

我不确定什么会影响游戏的性能,因为它没有执行任何要求很高的任务。我唯一的猜测是它可能是我正在使用的大地图,但我觉得这不是问题,因为当地图不大时游戏仍然生涩。此外,我尝试将地图缩放到更大的尺寸,但它并没有使性能变得比以前更差。

有谁知道这里的性能问题可能是什么原因造成的?谢谢。

【问题讨论】:

更好地解释“跳跃”。 我认为我曾经看过的教程涵盖了这一点。它与渲染地图的分辨率与地图的实际分辨率有关。有一个选项需要在某处切换。但是请查看统一的平铺地图,好的地图肯定会涵盖这一点! 【参考方案1】:

周期性帧率下降可能是由多种原因引起的 - 幸运的是,Unity 为您提供了一个非常好的工具,可以通过 Profiler(窗口 > Profiler)的形式跟踪这一点。建议您构建游戏(检查Development BuildAutoconnect Profiler),而不是在编辑器中进行测试,因为编辑器通常会产生大量开销,这些开销会显示在 Profiler 中并可能使您误入歧途。

玩游戏,看看当您注意到 fps 下降时是​​否有任何尖峰。如果您有垃圾收集 (GC) 导致周期性 fps 下降,我不会感到惊讶。 GC 在后台定期触发以清理已分配但不再需要的内存。通过选择CPU Usage 并查看GC Alloc 列,您可以很好地了解分配了多少内存。这可以很快加起来!优化游戏以避免 GC 峰值本身就是一个完整的话题。

但是,当然,您的问题可能与 GC 峰值无关。希望 Profiler 会告诉您应该翻转哪些石头。

【讨论】:

以上是关于简单的 2D Unity 游戏具有周期性抖动的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D 灵巧小知识点☀️ | Unity脚本生命周期

Unity脚本生命周期与执行顺序

unity引擎中游戏物体的生命周期

Unity认识常用的生命周期函数(AwakeStartUpdate...)

怎么破解unity5.0,我有破解工具

游戏优化系列三:Unity游戏的黑屏问题解决方法