做了一个小游戏,类似别踩白块的玩法,每个可点击项是一个背景图+一个文字。文字起初用的系统字体。游戏卡顿非常明显,玩几十秒都忍不了。
问了16群的一些大牛,上了对象池技术,卡顿稍稍缓解,但依旧是卡。原因是label(具体为啥不清楚)。
然后,既然label不能用,就上sprite吧。做了一版sprite的。试玩地址
手机上不卡顿了。但是,抓包可以看到,资源太大了。。。 (Ps:买不起pro版TP。。。就算pro版TP打包图集,也不会小。。。毕竟重复的图片区域很多。。。)
---------分割线-----------
今天(应该是昨天晚上)想着加一些诗进去吧,然后,拿到psd,一个个字儿的导出图片。。。一首诗(五言)下来,吐了。。。果断写一个自动脚本。。。有兴趣的可以下载拿去玩 generator.zip (33.1 KB)
字体文件太大,没打包进来。
然后,TP打包图集看了下,30多MB。。。。 (用户宽带多大我心里还是有点儿B数的。。。)
心想,完了。。。
------------ 分割线-----------------
怀揣着不甘,继续搜索优化方面的文章,看了十几篇吧,性能问题锁定在drawcall上。我找出历史label版看了下,deawcall在30+,fps 40左右。存在明显卡顿。(Ps:看到好多老司机吐槽creator性能问题,官方大大说2.0才能解决。。。桑心。。。)
Ps:相关drawcall优化,建议论坛内搜索drawcall即可。例如经典的 ababab渲染问题。
creator有一个牛逼的自动图集功能,在构建后,能把同目录下的相关碎图打包到一个图集里。构建的时候,勾选调试模式,打包后能看到drawcall次数。我的小游戏优化后,drawcall恒定为4。一点儿不卡了~~ 体验地址
不过,好像发现了一个bug,自动图集修改了尺寸好像没直接生效的样子,想编辑其他的内容的时候,突然弹出来是否保存改动。。。。
未储存的资源导入设置修改
未储存的资源导入设置修改,改动资源:db://assets/font/AutoAtlas.pac
这个框框弹出来,点击应用,才正确修改了图集尺寸。。。当然,建议不要超过2048(TP的建议,说存在兼容性问题)
需要注意的是,一定要点击预览,看看生成的图集是否是一张图。。如果不是,那么drawcall可能是不会有优化效果的~
还有一个需要注意的:bmpFont的图集只能是一张图。。。creator暂时还不支持多张图的~~~ 所以,导出的时候,注意尺寸。。。
这个时候就需要合理组织文件结构了(论坛搜索能看到老司机也被这个折磨过。。。)
总结:想游戏不卡,降低draw call,label要用bmpFont。合理组织文件,使用自动图集功能。
