ios - 使用旧的 SKTextureAtlas 或 SpriteAtlas
问题描述
我制作了一个使用许多纹理图集的游戏。我目前在 assets.xcassets 文件夹中使用 SpriteAtlases,在测试 iOS 10 以下的设备之前效果很好。
在 iOS 9 的任何设备上运行都会在下面显示此问题,并且不会加载纹理。
-[CUIThemeRendition newImageFromCSIDataSlice:ofBitmap: usingColorspace:] Unsupported pixel format in CSI got 5
Unable to create unsliced image from csi bitmap data.
我无法解决这个问题(我读到它可能是一个错误),所以我能想到的唯一两个选择是在项目包中使用旧的 .atlases 或者在使用时只让我的游戏支持 iOS 10.0 和更新版本精灵图集。哪个是更好的选择还是有其他选择?
解决方案
使用 .atlas 方法陈旧且效率低下。到目前为止,XCassets .spriteatlas 可以更好地使用内存,并使您的项目运行得更好。
我的建议是不支持 iOS 9 及更低版本。仍在使用 iOS 9 的用户是如此之少,如果使用这种低效的方法,你会搞砸你的 iOS 10 用户。此时,大多数人已经升级到 iOS 10 或更新版本或购买了新设备。
它达到了我们开发人员物理上无法继续支持旧 iOS 版本的地步。事实上,如果我没记错的话,Twitter 最近刚刚放弃了对 iOS 9 的支持。我认为效仿是个好主意。
推荐阅读
- html - 如何创建图像的特定移动背景
- java - Android Videoview一直显示黑屏无音频
- javascript - 反应 setState(e.target.value) 不更新状态
- scala - 使用功能构造从 REST 响应中创建类列表
- mysql - 一段时间后,Mysql 数据库开始使用大量 CPU
- swift - 访问由子类更改的父类初始化程序中的属性
- python - 用其他列的索引替换列表类型的列项
- c - 在c编程中将一个字符串变量复制到另一个字符串变量时遇到问题
- javascript - V8 字节码中的 LdaKeyedProperty 是什么?
- c# - 发送带有大于 4MB 附件的电子邮件