所以这是我的第一个应用程序而且我被困住了将近一个星期我无法找到解决方案。我为不同的角色制作了很多动画,并发现我的游戏'内存使用量约为200 MB。之前我并不担心这个问题,因为我和许多初学者一样认为,在我压缩我的png纹理之后,这个尺寸也会减少。但这并没有发生。所以我开始搜索我能做些什么,并发现将纹理格式从默认RGBA8888更改为RGBA4444可以将内存使用量减少一半。
我找到了答案Sprite Kit Texture Atlas: Define Image Format (RGBA4444, RGB565, …),其中表示您可以从Build Settings>更改输出格式。输出纹理图集格式。但这对我没用,因为我的地图集是在assets.xassets文件夹中创建的。 "构建设置>输出纹理图集格式"只有在项目文件夹中而不是在assets.xassets文件夹中创建地图集时才有设置。
所以我的下一步是在TexturePacker中手动更改纹理格式。我这样做了,但问题是当我将这些新纹理添加回assets.xassets文件夹时,即使它们的质量很低,但它们仍然具有与RGBA8888格式的纹理相同的内存使用量。
我已经阅读了大量资源,但是如果Sprite Atlas位于assets.xassets文件夹中,则没有找到有关如何更改输出纹理图集格式的任何信息。
所以在这一点上我不知道该怎么做,我的问题是 - 如何在assets.xassets文件夹中为我的Sprite Atlases将纹理格式更改为RGBA4444?提前谢谢。
答案 0 :(得分:1)
在我使用SpriteKit的测试中,我发现所有纹理都作为RGBA8888(意味着32BPP)加载到内存中。纹理打包可能会将数据存储在磁盘上,每个组件为4位,但在运行时加载到每个组件8位的内存时无关紧要。如果您对减少运行时内存使用量的方法感兴趣,请查看:this SO answer以获取有关SpriteKit的内存减少着色器的信息。