我使用 2d 动画包和 2D Ik 包创建了 2D 精灵动画。我的角色是一张精灵表(PBS 文件)。在 PBS 文件中,所有的结构(眼睛、嘴巴等 - 角色基本上是一个带脸的正方形)都被排列并附加了骨头。然后我在 Unity 中对角色的空闲动画进行了动画处理。
动画比较复杂,总共1028帧(约17秒)。
否则场景几乎是空的。有一些带有碰撞器和刚体的精灵用于简单的平台。有一个 1024 px 的背景图像。 x 1024 像素。
在播放模式下,FPS 下降至 30 FPS 左右(或更低)。
我有另一个没有动画的场景,但有大量资源(对于 2D 场景,有数百个精灵,其中许多精灵不断运动)。该场景始终以 210++ FPS 运行。
为什么这一动画会杀死 FPS?我刚刚开始为所有角色创建动画。如果我向场景中的 NPC(敌人)添加类似的动画,那么这个东西可能根本不起作用。
如有任何建议,我们将不胜感激。
对于遇到同样问题的人,请确保您安装了 Burst 和 Collections 软件包(通过软件包管理器),它极大地提高了 2D 动画的性能。
所以我这周花了几天时间创建了精灵表动画来替换我在 Unity 中制作的骨骼动画。正如我所怀疑的,性能领先数光年。我现在有更多动画,其中一些长达 270 帧。但我始终看到高于 220 FPS 的帧率。可惜unity的2D动画包太慢了。为了完成我一直在寻找的相同动画,我最终使用 Andreas Esau 的 COA Tool(剪切动画工具)附加组件在 Blender 2.8 中对我的角色进行装配和动画处理。
COA Tools 是一个很棒的工具,但我希望它可以将渲染的精灵表导出到 Unity。我最终将每个帧导出为单独的图像,并使用TexturePacker 制作我需要的 2048px 方形精灵表。一旦我将精灵表统一起来,我就能够快速设置动画剪辑并对其进行测试。
正如我所说,精灵表远远优于直接在 Unity 中创建的动画。
如果您费心阅读我原始帖子上的所有评论,我会说有很多脚本正在运行并且正在发生大量计算。它肯定存在于分析器中。但这绝对不是导致 FPS 下降的罪魁祸首。这绝对是动画。
@Marunia 这太有用了,很抱歉花了一年多的时间才有人表达赞赏。谢谢你。