今天给大家整理一些cocos creator 常用的一些优化技巧和手段,希望对大家的项目有所帮助。
一: 资源包体大小优化:
(1)去掉不用的资源,去掉不用的代码模块;
(2)压缩png图片,在清晰度课接受的范围内让图片的体积更小;
(3)压缩声音数据,多声道变单声道,降低采样率;
(4) 在需求的允许下降低图片的部分精度,比如,1920x1080的图片---> 960x540;
(5) 特殊的字体,不要直接带字体文件,而是使用美术字来替代, 尽可能不要带字体文件;
二:图集打包:
我们很多人喜欢用散图,这样,会影响绘制效率,所以一般我们会把散图达成图集,一次装载到显卡, 同时多个物体可以共用一个drawcall来批量完成绘制, 使用图集的时候,注意同时使用的图片放到一起,每个场景都要用的图片放一起。不要把不同时会使用的图片放到图集里面。这样不利于资源卸载
三: 动画优化:
内存大小优化: 如果动画内存过多,比如帧动画,可以考虑使用骨骼动画来代替帧动画;
运行性能优化: 大量骨骼动画,可能导致帧率较低,可以考虑在允许的范围内用帧动画替换;
避免动画中绑定代码: 动画编辑器动画时,尽量不要使用动画事件来调用代码,避免不必要的代码管理麻烦。
四:资源管理:
(1) 不用的资源,在场景切换的时候,如果资源吃紧,可以把他卸载掉;
(2) 进入到游戏场景之前,将接下来常用的资源,预先加载进来,避免运行中加载出现"长时间卡住”的现象, 场景资源多的,加资源加载过度;
(3) 对于常用的对象和物体大量的分配与释放,可以考虑 使用节点池来进行缓存;
五:代码优化:
(1)避免在运行时才生成数据,比如地图数据,路点数据,能离线生成的最好先离线生成出来;
(2)在update中避免使用 节点查找等,可以考虑用变量在初始化的时候,把常用的节点,组件保存起来;
(3)每个函数尽可能保持足够的简单, 功能单一;
(4)能自己编码实现的,尽量少用大型的框架库,比如物理引擎等。能不用就不用;
(5)复杂的算法,可以考虑预先计算好,用空间换时间;
(6)代码命名要规范,结构要清晰;
(7)不要再界面上做过多的代码绑定;
(8)避免使用生僻的语法,用法,组件等,让代码升级的时候更方便;
… …
六: setting.js 优化
资源放到resources文件夹下,会导致setting.js变大,所以,不用代码加载的资源,千万别放resources文件夹下;
七:运行时内存优化:
分析内存的占用情况,内存大头一般都是图片资源。
图片在运行时的内存大小是固定的,和压缩算法没有关系,因为最终要解压出来, 1920x1080大小的图片内存解压开后大约是1920x1080x4(每个像素4字节),
这个内存占用,和你的图片是png,还是jpg关系不大。所以可以估算处大概内存。
根据运行时候图片的内存情况,删除不用的图片,同时可以考虑降低部分图片的分辨率来降低内存占用。
运行时后,可能节点越来越多,内存越来越大,也越来越慢,把不用的节点都要删除掉, 检查节点数目,资源等;
… …