手機游戲,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插件管理的方式。