用atlas文件和SpriteKit进行批处理绘图的问题

所以我遇到了一个我正在构build的游戏平台上滞后的问题。 所以我正在研究如何提高性能。

我正在尝试批量绘图,以便减less绘制调用。 我有问题,但。 因此,一个全新的项目:

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

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

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

我期望看到1画,因为所有的图像都在同一个地图集文件,但我看到4。

有什么我失踪?

只是好奇我怎么得到这个正常工作。 谢谢你的帮助!!!

iOS 9上的xcassets存在一个bug,即使图像放在xcassets中,绘制调用也不会被减less。 显然这是固定的更高版本,但从那以后我从来没有打扰与xcassets。 相反,我将图像放置在项目中的独立.atlas文件夹中,这样可以减less绘制调用。

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

如果绘制调用没有增加,那么我会假设4个绘制调用是绘制4个不同的精灵(如果它们是非常复杂的)。 如果绘画调用增加,请尝试从xcassets中移除图像,并将其放置在项目中的单独.atlas文件夹中,然后比较绘制调用。