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界面长这样:
我们把需要打图集的某个文件夹丢进来之后会有一个图集样式的预览
点击发布精灵表之后, 会有一个对应格式的图和一个tpsheet文件出现在输出目录
tpsheet里记录了图集的各种参数已经每个小图的位置信息, 中心点信息等,我们后面再说.
之后把这两个文件丢到Unity的某个目录下, 注意同级, 丢进来之后就是自动分割好的图集
成功!
3.TexturePacker参数设置
找点重点的说!
其实就是刚才说的那个TPSHEET的格式, 当然是选Unity啦
像素格式肯定是要问UI大佬, 能降则降.
图集的布局格式还是建议2的整次幂, 调节大小的时候预览图会变, 可以根据预览图打出最小的图集!
是否去掉精灵的透明通道, 有些精灵去掉透明通道后会变得很小, 可能与原美术效果不符, 可以选择裁剪并保持位置使精灵保持了有透明通道时的位置.
点击了某个具体的精灵后会有这个参数设置, 就是图集中精灵的pivot啦