最近在搞手游项目,美术那边丢过来几百张碎图,运行起来卡成PPT。盯着性能分析工具看了半天,发现全是零碎的贴图把drawcall堆上天了。之前听老司机提过纹理打包能救命,这回真轮到我自己动手了。
第一步 瞎折腾踩坑
最开始跟个无头苍蝇似的,开引擎自带打包工具直接开干。手一滑把2048尺寸调成1024,导出一看角色眼睛鼻子全糊成马赛克,美术抄着扳手就冲过来了——原来战斗特效的半透贴图都被压碎了。
- 血泪教训1: 别动默认尺寸选项
- 血泪教训2: UI透明通道和角色贴图得分锅下料
第二步 分文件夹规整
开新工程专门伺候打包。按功能建了五个文件夹:战斗特效扔红色文件夹,主界面UI塞蓝色文件夹,把带透明通道的图标单拎出来标记“玻璃组”。
第三步 批量预处理
发现碎图边缘有白边,原来是美术导出时没清空背景色。拿脚本批量跑了一遍Trim透明像素,400张图十分钟搞定。要是傻乎乎手动拖,估计得干到明年。
第四步 调试打包参数
这回学乖了,先备份源文件再试参数:
- 关闭旋转: 角色图转歪了会穿帮
- 间距调2像素: 跑低端机也不裂边
- 强制方形: iPad老设备好这口
第五步 实操合批
把五个文件夹拖进打包窗口,眼看着进度条咔咔走。结果战斗特效组报错——有张1024x32的长条贴图超宽了。拆成四段后重新打包,生成的四张大合图尺寸刚好卡在512x512。进游戏测帧率,drawcall从137直接砍到22,手机也不发烫了。
现在项目里常备三个打包方案:低配机用256尺寸,中档机用512带旋转,宣传片专用1024无压缩。美术再也不用通宵改贴图,打包键一点直接出菜。记住别像我开头那样无脑打包,分清楚食材再下锅才是真诀窍!