1.基础定义

图集是将很多零碎的2D小图整合成一张大图,方便unity渲染合批,降低渲染消耗。

2.图集的作用

1.UI的合批处理,减少DrawCall(多张图片需要多次DrawCall,合并成一张大图只需要调用一次DrawCall)

2.减少对内存的占用

3.提升效率

3.策略

1.尽量紧凑,大小不要超过512x512

2.Draw Call尽量少,同一个界面的小图尽量在一个图集里

3.内存管理方便,加载性能好,打开一个界面时只加载必要的图集,关闭时可以方便地释放图集

4.AssetBundle打包、热更粒度合理,不能出现“热更一个新界面,大量图集都需要热更”的情况

5.设计UI时要考虑重用性,将边框、按钮等共享资源,放在1~3张大图集中,作为重用图集;

6.其它非重用UI按照功能模块进行划分,每个模块使用1~2张图集,作为功能图集;

7.对于部分UI,如果同时用到功能图集与重用图集,但是其功能图集剩下的“空位”较多,则可以将重用图集中用到的元素单独拎出来,合入功能图集中,让UI只依赖于功能图集。通过一定的数据冗余,来实现性能的提升;

4.使用图集

1.Edit → Project Setting → Editor → Project Settings→Sprite Packer
三种模式
Disabled表示不启用它,
Enabled For Builds 表示只有打包的时候才会启用它,
Always Enabled 表示永远启用它。
设置Always Enabled

2.在Assets下的Images文件夹建立一个图片文件夹test,将集中到图集的图片放置到此文件夹中

3.右键—>Create–>Sprite Atlas,命名为test

4.选择Buttons图集,在Objects for Packing中选择图片文件夹test,点击Pack Previes,图集建立完成。

图集对我们优化DraCall有很大的作用,掌握图集是优化的必经之路。我通过自身实际操作以及总结得到了以上的感悟,希望对大家有所帮助。