Cocos 小秘书避坑指南大放送,一定有你想看的!

6bc74f8a437f9495ae817f7b89887a7b.png

童话里的故事总是骗人的

现实中的 Bug 不仅免费还包邮127cca748ab13f484a357f6b77a8efa3.png

你是否经常被工作中的小麻烦

挡住了前进的脚步

因为一个小问题而纠结半天?3361e6f16e064434ee1816c88e6d1a7a.png

别再苦恼啦

Cocos 小秘书携无 Bug 符

帮你解决工作中的所有恼人小问题

让你轻轻松松高效开发a61c701240dd3bff20de5499eae72b14.png

自 4 月 9 日 Cocos 小秘书推出后,已帮助大家解决了许多问题,成功用自身技术力量服务了大批开发者,广受好评。

我们决定将常见的 Bug 解决思路整理公开,希望能对更多的开发者有所帮助,在此也为背后引擎组童鞋们及时帮大家解决问题的敬业精神赞一赞~

以下是 Cocos 小秘书发出的避坑指南,进来白嫖~

    有没有办法获取 Prefab 引用的项目资源路径?我想用它来判断资源是不是属于项目公共资源。

目前引擎没有办法在运行时将 res 的包体资源相对路径转化为项目相对路径,我们提供两个方案可供参考喔。

1、通过 cc.loader.getDependsRecursively("resUrl") 获取打包后的资源引用路径。

然后再通过 cc.loader.getRes(url, cc.Asset) 获取加载的资源对象缓存,通过判断资源对象的其它属性来判断是否公共资源。

2、通过插件获取项目发布之后的资源路径,然后将该路径数据记录到游戏数据中。

插件参考

https://github.com/cocos-creator/demo-process-build-textures

    iOS 上按两下 HOME 键出现进程列表,再回到游戏声音就会丢失,请问怎么处理?

可以在 platforms/wechat/wrapper/unify.js 里加上以下代码。

javascript
utils.cloneMethod(globalAdapter, wx,'onAudioInterruptionEnd');
utils.cloneMethod(globalAdapter, wx,'onAudioInterruptionBegin');

接着在 Game.js 里,添加以下代码即可喔。

javascript
__globalAdapter.onAudioInterruptionEnd&&__globalAdapter.onAudioInterruptionEnd(onShown);
__globalAdapter.onAudioInterruptionBegin&&__globalAdapter.onAudioInterruptionBegin(onHidden);

相关 pr 参考

https://github.com/cocos-creator-packages/adapters/pull/118

    cc.Graphics 这个组件填充时,能填充一张图片而不是单色吗?

Graphics 组件支持绘制 svg 矢量图形。

参考工程:

https://github.com/cocos-creator/raphael-example 

    自定义控件可以做全局吗?不然每个项目都要重新做一套,使用起来很麻烦。

可以将自定义控件做成 Prefab,然后从资源管理器中拖拽相应的预 Prefab 到编辑器的自定义控件分页,即可完成创建。

右键点击自定义控件中的元素,可以选择重命名、从控件库中删除该控件以及更换控件图标。

之后即可像使用内置控件一样,用拖拽的方式在场景中创建您自定义的控件了喔。

具体操作参考官方文档:

https://docs.cocos.com/creator/manual/zh/getting-started/basics/editor-panels/node-library.html

另外就是可以把资源放到内置资源文件夹中。

目录如下:

CocosCreator_2.2.2\resources\static\default-assets\prefab

    远程资源的合拼图资源怎么加载 png 和 plist?

参考如下代码:

const LoadRemotePlist = require("./LoadRemotePlist");


cc.Class({
    extends: cc.Component,


    properties: {
    },


    start () {
        LoadRemotePlist("http://127.0.0.1:5500/assets/resources/emoji.plist",(err, plist)=>{
            let spriteFrames = plist.getSpriteFrames();
        });
    },
});

具体 LoadRemotePlist 脚本代码,参考 Demo : 

https://github.com/cocos-creator/load-remote-plist

    打包到微信端的小游戏,在安卓上运行的时候会有突然卡顿的现象,而在 iOS 上没有,使用 Cocos Creator 从 2.2.1~2.3.3 版本开发的小游戏都有。(游戏类型:IO )

1、针对游戏帧率:从 60 帧,定制修改成 30 帧,可以针对到一些低端的手机。

2、字体优化:尽量使用 bmfont 字体,不使用系统字体,开启 dynamicAtlas 功能,Label 的 CacheMode 选择为 BITMAP。

3、使用 nodepool,将所有的粒子、游戏中的玩家、还有一些经常出现的元素,全部提前创建好。

相关优化文章参考:

https://www.cocos.com/3493#3493

    .fbx 格式的模型在 2.2.2 版本不显示。

2.3.0 版本之前对 3D 模型的支持不够完善,从 2.3.0 版本开始,已支持一键创建 3D 场景必须的节点,包括缩放问题,建议使用 2.3.0 以后的版本进行开发。

788edfc214ff6556f8220ecd971c33b5.png

    怎么让 Creator 支持 ts emitDecoratorMetadata 的参数?

首先 npm init 之后 npm i reflect-metadata --save

然后在 tsconfig.json 中

加入 "experimentalDecorators": true

参考链接:

https://www.jianshu.com/p/bf600274a004

    如何执行同步动作?

cc.tween 在链式执行时是按照 sequence 的方式来执行的,但是在编写复杂缓动的时候可能会需要同时并行执行多个队列,cc.tween 提供了 parallel 接口来满足这个需求。

js
let t = cc.tween;
t(this.node)
    // 同时执行两个 cc.tween
    .parallel(
        t().to(1, { scale: 2 }),
        t().to(2, { position: cc.v2(100, 100) })
    )
    .call(() => {
        console.log('All tweens finished.')
    })
    .start()

    游戏加入了几个粒子后,加载起来会特别卡。

经过 Demo 测试发现,加入的粒子里面使用内嵌的 Base64 图片数据,这类数据加载起来很慢,建议把图片数据提取为单独的图片,也就是 plist+png 的形式,而不是单独的 plist 粒子资源。

 e6ac0b80257e3b2abe0e0c9bcc91c4f8.gif

以上就是本次为大家整理的避坑指南

希望能对大家有所帮助喔165712c1254cad4fcaad8dbedd0fa600.png

Cocos 小秘书的免费试用

截止 6 月 30 日就结束啦

没有参与内测的童鞋不要灰心喔

Cocos 小秘书正式版 7 月份将正式上线

全力助你高效工作、认真生活

敬请期待喔a38d2fdd00b1798a0d6a78c32e57d89a.png

近日热点:Cocos 有奖征文活动正在火热进行中,只要与游戏研发相关的内容都可以参与唷!快来分享你的开发经验和故事吧!点击【阅读原文】即可参加活动!

更多精彩

超18亿用户!SHAREit 平台发布游戏招募令

Cocos Creator v2.3.4 正式接入腾讯云服务

技术派 | 基于有向距离场(SDF)的地图碰撞系统

Cocos Creator 2.4.0 Preview 现已推出

UIWebView导致苹果审核被拒该怎么办?

Cocos Creator 物理刚体挖洞新方案(上)

Cocos Creator 物理刚体挖洞新方案(下)

腾讯光子《最强魔斗士》策划分享篇

腾讯光子《最强魔斗士》技术分享

新书推荐|零基础入门小游戏开发

Cocos 插件开发者的福音来了,余额提现秒到账

Creator 3D 官方中文视频教程,附素材源码

如何在 Creator 中优雅地嵌套 Prefab?

Analytics自定义事件功能详解,埋点分析利器

原生 3D 游戏《弹无虚发》是如何炼成的?

“在看”是最大的鼓励▼

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值