主要Bug,在XCAssets文件夹中创建的Sprite Atlas不支持批量渲染

Epi*_*yte 5 macos ios sprite-kit xcode7

我开始在XCAssets文件夹中使用新的Sprite Atlas,而不是在项目文件夹中使用我的地图集.但是我注意到,当我这样做时,我的节点不再被批量渲染,导致大量低效的绘制调用.这完全违背了使用地图册的目的!

要清楚这是我用来获取地图集的代码.

let atlas = SKTextureAtlas(named: "Sprites")
Run Code Online (Sandbox Code Playgroud)

"Sprites"是在XCAssets文件夹中创建的Sprite Atlas.

有没有人有解决方法或我在项目文件夹中制作Sprite Kit Atlases.

我正在使用Xcode 7.2 beta.

我想使用新的Sprite Kit Atlases的原因是因为这个问题.

Epi*_*yte 4

当我输入问题时,我找到了一种解决方法。您可以通过编程方式从 XCAssets 文件夹中的图像创建 SKTextureAtlas,如下所示:

let atlas = SKTextureAtlas(dictionary: ["Head":UIImage(named: "Head")!, "Body":UIImage(named: "Body")!])
Run Code Online (Sandbox Code Playgroud)

这显然只是一种解决方法。希望 Apple 在 Sprite Kit 的后续版本中修复此问题。这是一个非常严重的性能错误,所有开发人员都应该意识到。甚至苹果的示例项目也使用新的 Sprite Atlases,因此您认为它们可以进行批量渲染。

Apple 的更新 1回应:

感谢您让我们知道这个问题。我们目前正在调查原因,并将在未来的 iOS 更新中修复该问题。同时,您可以应用两种解决方法: 1. 在 .atlas 文件夹中创建并使用纹理图集。2. 继续在资源目录中使用纹理图集,但部署目标设置为 iOS 8.0。

Apple 表示更新 2 可能已在 iOS 10 中修复。正在调查。