【CocosCreator常见问题归纳】

开门见山吧。本贴会坚持更新,不出意外的话频率一周一次。希望能帮到大家学习和开发。

这个帖子更希望作为一个“问题与问题解决方案”的借鉴平台而持续的发光发热。包括让大家喜欢。
如果你需要帮助,你可以通过论坛搜索找到一些参考。如果没有,请你发篇新贴。
情况紧急的话@我们一下。(@huanxinyin,@337031709,@Knox,@jare,@jjyinkailejj,
@BigBear,@_PP ,@crazypad,@yufang.wu,@leda)
如果有些方案是我们还没整理的,请在帖子下方留言。

CocosCreator文档
CocosCreatorAPI
CocosCreator产品发布
CocosCreator产品下载
CocosCreator引擎仓库
其他第三方工具和资源
到仓库向开发团队反馈
FAQ

论坛其它常见问题收录贴

CocosCreator组件化开发相关

提供设计参考的Demo


1、微信小游戏子域使用艺术字字体报错,怎么解决啊

A:可以用艺术字,但是艺术字只能是白色的。

2、微信小游戏子域工程的res资源如何像主域工程一样远程下载

A:开放数据域的 Image 只能使用本地或微信 CDN 的图片,不能使用开发者自己服务器上的图片。对于非本地或非微信 CDN 的图片,可以先从主域 wx.downloadFile() 下载图片文件,再通过 OpenDataContext.postMessage() 把文件路径传给开放数据域去使用。

3、creator 电脑双屏问题能不能修一下

A:删除项目中的local文件夹的layout.windows.json也可以解决问题。

4、rpk包构建失败!错误:Error: Command failed:rpk包构建失败!错误:Error: Command failed: quickgame.cmd pack’quickgame.cmd’

A:现这个报错可以将类似的quickgame-toolkit\lib\bin目录路径加入环境变量Path
;E:\quickgame-toolkit\lib\bin
保存之后,需要等一小会才能看到quickgame-toolkit版本。这样就解决问题了。

5、oppo构建发布程序包报以下错误: Error:release 签名不存在!

A: 签名的生成流参考:https://forum.cocos.com/t/oppo-vivo-bug/68839/23?u=337031709

6、v2.1.0 eulerAngles替换rotationY的用法

A: eulerAngles 参数类型为 Vec3 ,node.eulerAngles = cc.v3(x, y, z);

7、2.0.5多子包出现,Already has sub package

A: 微信允许配置多个子包 我修改了你的工程 这个工程展示了在微信小游戏上分包加载的基础用法. https://forum.cocos.com/t/2-0-5-already-has-sub-package/70750/5?u=337031709

8、Label 下一帧才刷新大小 怎么办

A:这里由于 label 中_updateRenderData 处理开销过大,导致没办法设置 string 到时候去触发更新,size 只能在渲染到时候才可以获取到正确的 size,这个后续会加以优化和改进。目前用户可以自行在设置 label 所有属性后在执行一次 label._updateRenderData(true); 就能带当帧获取大小

9、2.0模拟器运行热更新范例

A: creator 2.0,第一次加载的资源是原生的,而不是更新后的资源,执行热更新流程后,才会把manifest的热更新目录加入到文件的search path,所以完成热更新并执行更新后的资源,你需要两个步骤,1. 执行热更新,2.不管热更新成功与否,执行 cc.game.restart(); 重新加载游戏,示例代码中的ALREADY_UP_TO_DATE中没有重启游戏,导致热更新完成后,再次打开不会切换到更新后的界面。第二个问题,不要使用官方demo下面的热更新资源,因为脚本的加密密匙匹配不上,自己根据教程,重新导出热更新资源。
附上热更新相关的两个文档。
https://docs.cocos.com/creator/manual/zh/advanced-topics/assets-manager.html16
https://docs.cocos.com/creator/manual/zh/advanced-topics/hot-update.html

10、新手求助:子域scrollview无法滚动

A: https://forum.cocos.com/t/scrollview/67114/15?u=337031709

11、CocosCreator调试预览的时候,如何设置不显示引擎信息

A: web预览的话点击预览窗口中的ShowFPS按钮在这里插入图片描述
或者使用cc.debug.setDisplayStats(false);
这样模拟器和web预览都不会出现FPS信息

12、编译后出现了预加载和播放声音的错误

A: 排查下是否构建模块异常或者项目异常,将相同功能的代码和资源转移到一个空项目下测试编译下是否会出现类似异常

13、vscode升级后creator添加编译任务后使用出错

A: 这个编译任务因为vscode的升级编译任务系统引起的问题,
https://code.visualstudio.com/docs/editor/tasks#vscode3
目前的解决方案是先将原先的tasks.json文件编码修改为如下,同时按住ctrl + shift + b 运行任务,先解决问题。

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "compile",
            "command": "curl",
            "args": ["http://localhost:7456/update-db"],
            "type":"shell",
            "isBackground": true,
            "group": "build",
            "presentation": {
                // Reveal the output only if unrecognized errors occur.
                "reveal": "always"
            },
        }    
    ]
}

14、场景突然打不开

A:

如果有保存或托管了场景文件,请对比下文件差异,这个问题应该是异常保存了场景文件导致的场景文件某个属性出现异常。
用vscode 等代码编辑器打开异常项目,查看下_id是否为null

15、DragonBones骨骼动画(texture)会有黑边

A: https://forum.cocos.com/t/dragonbones/70312/7?u=337031709

16、Cocos Creator 2.0.5 打包Windows出错

A: 你使用哪个版本的vs编译的,用vs2017编译看看,一般都是vs的编译环境没完全安装好 出现的问题 !

17、修改引擎js源码怎么生效

A: 定制 JavaScript 引擎

18、安装新版本后怎么安装低版本呢

A: 直接把CocosCreator.app 更改名字就可以了,比如CososCreator193.app 但注意中间不能有空格。这样就可以多版本并存了。

19、tileLayer.getTiledTileAt为何无法获得某一个矩阵坐标的tile。返回都是undefined。

A: 目前tileMap 的getTiledTileAt会判断在指定序列上_tiledTiles中是否已有tiledtile,有就输出,没有的话依据是否创建新的tiledtile(forceCreate)参数,执行相关代码。
你的项目中本来就没创建过tiledtile,所以这个逻辑在你项目上表现是正常的。
你可以通过setTiledTileAt (x, y, tiledTile)先创建一个,或者参考getTiledTileAt中的逻辑创建新的tiledtile,那么之后你getTiledTileAt()穿false就有东西了。

20、项目无法打开,无法新建,ipc timeout,message: app:open-project, session:1@renderer:1012

A:

  • 重启编辑器。

21、如何从2.0.5降级到1.9.3

A: 只能升,不能降。工具层面没办法做到同时导出旧版本兼容的格式。(请做好备份)

22、求官方手册离线版2.1.0

A: https://github.com/cocos-creator/creator-docs

23、creator2.0.5安卓调试无法断点?

A: https://forum.cocos.com/t/creator2-0-5/70105/10?u=337031709

24、jsb2.0自动绑定对NDK版本有要求吗?

A: ndk 16,头文件路径是按那个来的

25、android 打包问题

A: 项目设置里面模块设置的network要勾选 第一次打包建议全部勾选上 别去模块
常见的打包失败4种问题
1.路径过长
2.去掉了必要模块
3.sdk或ndk版本太老或者太新
4.环境变量问题

26、android 版本编译成功但运行失败

A: https://forum.cocos.com/t/android/68591/6?u=337031709

27、2.1.0的3d深度问题

A: 目前仅对3d模型开启深度检测,可以在官方范例中的 mech-drone场景测试

28、萌新问一下 TiledLayer.removeTileAt 已经没有了吗? 可以用什么代替呢?

A: https://forum.cocos.com/t/tiledlayer-removetileat/70434/4?u=337031709

29、TiledMap导出的文件在CocosCreator V2.05 无法加载

A: https://forum.cocos.com/t/tiledmap-cocoscreator-v2-05/71229/5?u=337031709

30、2.0.7 spine 原生平台动态换装失败

A: 之前是用到了getRuntimeData()获取原生的spine操作,更换成Skeleton API就可以了
this.spine.setAttachment(type+’-slot’, {type}-{levelIndex})

31、请问cocos creator 会释放prefab引用的图片吗?

A: https://forum.cocos.com/t/cocos-creator-prefab/70642/15?u=337031709

32、cocosCreator2.0.6发布qqPlay玩一玩平台运行报cc.sys.localStorage.getItem为空

A: 这个可以在 qqplay 适配层中 qqplay/libs/engine/CCLocalStorage.js 中添加代码,或者等下个新版本
https://github.com/cocos-creator-packages/qqplay-adapter/pull/513

33、请问千万不要放resources 下面到底是有什么坏处,另外一个推荐的项目结构应该是怎么样的?

A: https://forum.cocos.com/t/resources/72167/3?u=337031709

34、插件代码无法保存预制,求正确姿势

A: 不是 asset 的 uuid


完整代码在 https://docs.cocos.com/creator/manual/zh/getting-started/faq.html

35、creator vedioPlayer上怎么叠加UI

A: UI 可以用 Creator 做,Video 在各个平台都要自己适配,放在引擎 GL View 的下层,引擎中需要开启:
cc.macro.ENABLE_TRANSPARENT_CANVAS = true;
然后设置
cc.Camera.main.backgroundColor = cc.color(0, 0, 0, 0);
如果有多个 Camera,每个都要设置
至于视频怎么适配和呈现,就要自己做了

36、发现个大问题,iPhone6-iOS12小游戏平台息屏再唤醒后卡死

A: 引擎源码中找到下面代码,并屏蔽掉,可以解决此崩溃,这个标志是微信小游戏提供的,只对微信小游戏问题生效。
//opts[“preserveDrawingBuffer”] = true;

37、可以定义类似CC_DEV 这样的常量吗

A: 自定义引擎完成后,打开 engine/gulp/util/utils.js 脚本,在最下面有一个 uglify 函数,可以根据需求自行修改其中的参数。例如,返回的对象里,有一个 global_defs 字典。修改其中的 key value 即可。

38、速度被限制

A: 因为box2d中限制了速度变化 可以在engine中的box2d.js下搜索
b2_maxTranslation的定义
手动修改它的值根据文档编译引擎
https://docs.cocos.com/creator/manual/zh/advanced-topics/engine-customization.html#12-安装编译依赖19

39、网络图片加载失败怎么解决

A: 这是请求资源时出现跨域问题,说明目标资源的资源服务器并不允许跨域访问资源。

40、【creator求助】按钮的width设置为负数问题

A: 目前引擎上是不支持node.width为负数的。
会在编辑器和引擎上加些限制。

41、Animation有没有方法恢复到当前动画的初始状态

A: CCAnimation的使用中,用户可以指定动画名称和动画时间,然后传入play(name.time),这样可以让动画在指定时间播放。
如果只是想让动画跳到某一帧但是不想播放,可以这样使用。

        var state = this.anima.getAnimationState("test");
        var curves = state.curves;
        var info = state.getWrappedInfo(0.3);
        for (var i = 0, len = curves.length; i < len; i++) {
            var curve = curves[i];
            curve.sample(info.time, info.ratio, this);
        }

恢复播放就用上面的play方法。
恢复到初始状态的话你传入0.01差不多就够用了。

42、Switching among scenes with translation Animations

A: https://forum.cocos.com/t/switching-among-scenes-with-translation-animations/72911/6?u=337031709

43、creator2.0.2绘制子域排行榜黑屏

A: https://forum.cocos.com/t/creator2-0-2/67943/14?u=337031709

44

21赞

其实可以的,我们就活生生的降了下来。只不过难度较大

是的啊

@337031709



2.0.5,2.0.7,2.1.0等等在iphone5上新建helloworld,2帧·····
1.10正常
老大们,希望重视下啊

定点数超过最大值的时候会出现屏幕的资源显示不全,


还有用Graphics 画线,当屏幕进行缩小的时候线有时候会部分显示部分不显示,显得很奇怪