使用图集文件和 SpriteKit 进行批量绘图的问题

Issues with batch drawing with atlas files and SpriteKit

所以我 运行 遇到了我正在构建的平台游戏的延迟问题。所以我正在研究如何提高性能。

我正在尝试进行批量绘图,以便减少绘图调用。我有问题。所以有了 b运行d 个新项目:

我有 4 个英雄精灵,所有图像都存储在 .atlas 文件夹中。所以 atlas 文件夹中的每个精灵都有一个 1/2/3x 图像。

我将其拖放到 xcassets 文件夹中。然后我去我的sks文件创建4个精灵并相应地改变纹理。

默认情况下,它们都具有相同的混合模式。我将默认规则设置为 true 以忽略兄弟顺序。所有精灵都在默认的 z 0 层上。我已将其设置为显示抽奖次数。

我希望看到 1 个绘图,因为所有图像都在同一个图集文件中,但我看到 4 个。

有什么我遗漏的吗?

只是好奇我是如何让它正常工作的。感谢您的帮助!!!

iOS9 上的 xcassets 存在一个错误,即使将图像放置在 xcassets 中,绘制调用也不会减少。显然这在后来的版本中得到了修复,但从那时起我就再也没有为 xcassets 烦恼过。相反,我将图像放在项目中单独的 .atlas 文件夹中,这确实减少了绘制调用。

尝试放置 4 个具有相同纹理的精灵,然后查看绘制调用是什么。如果精灵使用相同的纹理,它不应该是 4。我还建议添加 8 个精灵(4 个不同的纹理 * 每个 2 个精灵)并查看绘制调用是否增加到 8 个。

如果绘制调用没有增加,那么我认为绘制 4 个不同的精灵(如果它们非常复杂)需要 4 个绘制调用。如果绘制调用确实增加了,请尝试从 xcassets 中删除图像并将它们放入项目中单独的 .atlas 文件夹中,然后比较绘制调用。