1.为什么要打图集
降Draw Call! 在Unity中, 每一次引擎准备好要渲染数据并通知GPU的过程称为一次Draw Call. 对于开发者而言, 每帧的drawcall要限制在一个比较小的数字, 过多的drawcall会导致渲染过程极度耗时造成视觉卡顿. Unity内置了批次处理技术(batch), 只要游戏对象的Transform(不太严谨)和材质相同, 就合并为一个批次, 在一个drawcall内处理. 而降低批次效果最明显的方法就是打图集!
减少IO! 打图集简单来说就是把一系列散图合并成一张大图, 在游戏运行时只需一次性加载大图, 在用到各散图时从大图中找, 达到了以内存空间换取读图效率的目的. 打图集有一些规则比如图集最好不要留空已达到最大利用率, 图集的长款最好为2的整次幂方便压缩等等, 不做赘述, 说TexturePacker!.
2.TexturePacker使用流程
官网: https://www.codeandweb.com/texturepacker
Asset Store中搜可以找到Pro版和Free版, 不知道有啥区别
还有一个需要用到的是Texture Packer Importer, 商店搜, 免费!
在使用TP前需要先在Unity中导入TP importer, 只需要留下Editor部分
GUI界面长这样:
我们把需要打图集的某个文件夹丢进来之后会有一个图集样式的预览