美文网首页
CocosCreator-总结

CocosCreator-总结

作者: 程序猿TODO | 来源:发表于2021-04-07 09:36 被阅读0次

    包体优化

    • 删除无用代码
    • 定期清理,删除重复和未引用的资源
    • 压缩音效文件,尽可能少占用空间
    • 资源尽量放到res目录下。因为resources目录下的每个文件都会生成一个json,构建导出时,把资源映射关系存到Settings.js中,导致setting.js变大,所以,不是代码动态加载的资源,千万别放到resources目录下。另外为了防止缓存问题,构建时通常使用md5,此时Settings.js文件会进一步膨胀。
    • 对于图片资源,尽量让美术人员出图时就压缩好。如果使用了Creator的自动图集功能,最好在构建后用TinyPNG把这些合成大图再压缩一遍。有个问题是Creator2.0开始构建后文件都是uuid命名,可以用Creator官方插件找出它们的对应关系,再用脚本分析出哪些是自动图集生成的,之后再压缩这些图即可。

    性能优化

    • 多个Label尽量相邻放在同一个节点下,可合并DrawCall
    • 九宫格Sprite艺术数字图片即使同一层次,也不能合并DrawCall
    • Prefab的性能消耗主要在cc.instaniateaddChild
    • 减小节点层级数量。如果是重复多次使用的节点,一定要使用对象池,并且Prefab记得勾选“优化多次创建性能”这个选项

    WKWebView

    iOS开放了WKWebView,具有一定的JIT支持,有助于提升游戏性能,如果游戏需要打包成h5版本接入到App,推荐App的iOS版本使用WKWebView

    jsc

    CocosCreator构建安卓App时,会把js代码加密压缩为jsc文件(可通过选项配置),App运行时引擎执行解压解密,然后调用SpiderMonkey的虚拟环境接口运行js代码。

    节点属性

    • 假设每个组件的初始化都在onload完成,当一个节点的初始化依赖于另一个节点的属性时,就有可能出现异常,因为有可能另一个节点还没有执行onload。而start是所有组件的onload都执行完了才会执行,这时无论获取哪个节点的属性都不会有问题,因为那个节点已经初始化完成了。所以节点的UI初始化最好放在start中。
    • CocosCreator编辑器中变量绑定的节点,其实对应的是该节点所在的脚本对象,但脚本对象总会有个Node成员指向该节点,其它非Node类的组件都放在Node下的组件列表里。
    • CocosCreator脚本中Properties变量名称前加 _ 下划线,代表该属性在编辑器不可见
    • 测试发现,ScaleSize属性虽然互相独立,但运行时修改Scale会影响Size的值。

    资源目录分类

    • 构建后的res目录里面,有importraw-assetsraw-internal共3个文件夹。
    • import:这个文件夹里有一些奇怪的目录,放着长文件名的json文件,是游戏场景,预制体,图片信息的配置文件;
    • raw-assets:存放游戏的图片、声音文件;
    • raw-internal:存放游戏默认的图片、粒子资源;

    loadScene

    cc.loader.loadScene是个异步调用,执行顺序是:loadScene -> Scene的onLoad -> loadScene的回调 -> Scene的Start

    Animation回调

    • stop: 动画停止播放时,一般需求用这个就可以。
    • finished: 整个节点所有动画播放完成才会触发。

    JavaScript语法

    • 访问对象属性有2种方法,一是点运算符,一是[]运算符
    • 如果属性名有小数点,不能用点运算符
    • []访问属性名必须加引号,如果属性名是数字,可以不加引号
    • 遍历对象属性,可以用Object.keysfor...in

    相关文章

      网友评论

          本文标题:CocosCreator-总结

          本文链接:https://www.haomeiwen.com/subject/xdrrhltx.html