手机游戏,UI占的比重比较大。UI的图集管理相对来说就比较重要。一个好的图集管理方式要考虑以下几点目标:
- 方便开发管理
- 内存控制
- drawcall合并
方便开发管理要求维护方便。内存控制包括ios的分类压缩、图集的空间利用率。drawcall合并要求同panel的ui在同一张图集里。
根据开发经验,总结了三种对图集管理的方式
- 使用Unity自带Sprite Packer 插件
- Simple Sprite Packer插件
- 手工制作图集
| Sprite Packer| Simple Sprite Packer | 手工制作图集
----|------|----|----
prefab引用方式|原图(也可以对图集进行重Packer)|图集sprite|图集sprite
ab包管理|自动生成ab包|指定ab包|指定ab包
空间利用率|自动排列,利用率高|自动排列,利用率高|手排,比较灵活可高可低
维护难度|维护非常方便,不需要关心图集|1. 增加图需要手动重新打图集 2. 移动sprite不需要手改图集,需要重新指定prefab|1. 增加图需要手改图集,切图 2.移动sprite需要重新改图集,切图,重新指定prefab 3.为了空间利用率和压缩做图集调整时比较繁琐
效果上问题|图集重packer容易产生毛边,切图要小心||\
目前项目采用的手工制作图集,在对图集进行排版优化、sprite压缩调整图集上浪费了比较大的精力。但是ab包能够自己指定比较适合我们资源加载的策略。如果能够重新选择的话,应该会用Simple Sprite Packer插件管理的方式。