简单的 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 Build
和Autoconnect Profiler
),而不是在编辑器中进行测试,因为编辑器通常会产生大量开销,这些开销会显示在 Profiler 中并可能使您误入歧途。
玩游戏,看看当您注意到 fps 下降时是否有任何尖峰。如果您有垃圾收集 (GC) 导致周期性 fps 下降,我不会感到惊讶。 GC 在后台定期触发以清理已分配但不再需要的内存。通过选择CPU Usage
并查看GC Alloc
列,您可以很好地了解分配了多少内存。这可以很快加起来!优化游戏以避免 GC 峰值本身就是一个完整的话题。
但是,当然,您的问题可能与 GC 峰值无关。希望 Profiler 会告诉您应该翻转哪些石头。
【讨论】:
以上是关于简单的 2D Unity 游戏具有周期性抖动的主要内容,如果未能解决你的问题,请参考以下文章
Unity3D 灵巧小知识点☀️ | Unity脚本生命周期