• Cocos Creator 常用优化技巧汇总


    今天给大家整理一些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关系不大。所以可以估算处大概内存。

         根据运行时候图片的内存情况,删除不用的图片,同时可以考虑降低部分图片的分辨率来降低内存占用。

        运行时后,可能节点越来越多,内存越来越大,也越来越慢,把不用的节点都要删除掉, 检查节点数目,资源等;

    … … 

    转载地址:https://blog.csdn.net/u010742414/article/details/90083484?utm_medium=distribute.pc_relevant_t0.none-task-blog-searchFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-searchFromBaidu-1.control

  • 相关阅读:
    Win10 字体模糊解决(DPI缩放禁用),设置默认输入法英文
    windows下使用VS2015编译V8 JavaScript引擎(v5.5
    GDB 多线程调试:只停止断点的线程,其他线程任然执行; 或只运行某些线程 其他线程中断
    wget 显示"英国中部时间",去掉烦人的刷屏显示
    阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别
    CSS
    bootstrap4 调整元素之间距离
    数据库文件结构、sqlserver ON [PRIMARY]
    快速查看数据库中每个表的数据条数
    关于LINQ中SELECT NEW 的问题
  • 原文地址:https://www.cnblogs.com/wodehao0808/p/14098357.html
Copyright © 2020-2023  润新知