研究课题
- 图集纹理的位置
- 资源加载顺序对于内存的影响
- 加载SpriteAtlas时,是否加载图集纹理到内存中
- 加载第一张Sprite时,是否有加载纹理图集
实验环境
- MemoryProfiler
- 512x512的纹理10张,标记为Sprite
实验一:同时标记SpriteAtlas文件和Sprite文件
- bundle大小:atlas的bundle为1.3m,sprite所在bundle大小4.8m
- 加载Atlas文件后直接加载了图集纹理到内存中,同时创建了10个大小为1m的Texture2D对象和10个大小为1k的sprite对象
- 10个sprite对象和atlas对象对图集纹理产生引用
- 因为标记了key,因此可以正常的加载Sprite
实验二:只标记SpriteAtlas文件
- bundle大小,atlas的bundle文件大小依然是1.3m
- 除了没有10个1m的Texture2D对象,其余情况和实验一相同
测试结论
- 只需要SpriteAtlas即可,加载Sprite函数可以通过直接从SpriteAtlas文件中加载解决
- 标记Sprite为Key唯一的用处就是可以直接加载,但是会增加内存,以及增加key的数量,增大catalog的大小。不推荐
- 图集纹理会在加载SpriteAtlas文件的时候加载进内存