Cocos Creator v2.4.6-p1 版本说明

啥情况, 开了个坏头

应该搞成 2.4.6.1或2.4.7,

重新覆盖版本很混乱啊

是啊,我刚上面夸他终于出了修复版本2.4.6.1,结果。。。。他居然用2.4.6.1去覆盖2.4.6,然后改名2.4.6,沃日,真的是略显“业余”程序员

最近总是出现,预览的时候大量脚本依赖莫名其妙丢失的问题。
修改并保存出现警告的脚本,触发重新编译,能暂时解决。重启IDE又会出现依赖丢失。
在quick_compile_script 里面的scripts
里面看到,该确实的deps确实为{},而实际是有require其他脚本的。
本身是否是循环依赖引起,或者文件数量太多引起,不得而知,有没有什么好办法?天天浪费时间,希望引擎组的大大能注意到这个情况。

v2.4.6-p1对应的engine分支是哪个?

v2.4.7

有没有刚好对应到这个帖子的分支?
v2.4.7的内容比帖子的新。

Mask 白屏的问题有解决吗?

2.4.6给场景拖入一个"图片2.1",得到的节点名称为图片2。点被分隔,1被吞了。@jare @EndEvil @panda

246.zip (590.3 KB)

我们是用 tag 打标记的,tag 里面有所有版本~

246插件,如果消息函数用class语法,会出现消息不识别class方法,但是能识别class的函数属性。

这个原版插件是ts编译成js的,使用了class语法,和附件的手写js例子是一样的效果。

246.zip (590.3 KB)

'use strict';

class FuncObj {

    'say-hello1'() {

        Editor.log('Hello World! 11111111111');

    }

    'say-hello2'=()=> {

        Editor.log('Hello World! 222222222222');

    }

}

module.exports = {

    load() {

        // execute when package loaded

    },

    unload() {

        // execute when package unloaded

    },

    // register your ipc messages here

    messages: new FuncObj,

};

@EndEvil @panda

成员函数不是实例上的属性,只是 prototype 上的,自然不会被收发了。消息的接收方需要有能力识别并且反序列化(同样 new 一个)FuncObj 才行。
建议自己转成 JSON 进行传送。

1赞

我估计是引擎把插件序列号了之后扔给调度中心,然后调度管理器反序列化来实现在调度中心处判断是否有某个名称的消息响应函数。

但是如果可以把消息扔给各个子模块自行判断 if(typeof module.message[‘message_name’] == “function”)就更加贴心了,你们官方都说了要彻底typescript化,实际一些东西(例如插件)还是给electron牵着走。

再不济那个JSON.stringify自己实现一下,应能彻底解决,这样Creator就能从H5第一走向Game Engine第一了。

Creator 版本2.4.6-p1, Mac OS 11.5.2,启动后运行1~2次模拟器就疯狂打印如下错误,且场景编辑器中看不到任何东西了,没有升级之前的2.3.4是好的,升级后就这样了。简直没法用。弄个helloworld工程也一样,现在不得已只能降级了。
TypeError: Failed to execute ‘shaderSource’ on ‘WebGLRenderingContext’: parameter 1 is not of type ‘WebGLShader’.

这是跨进程调用,本质上就是 IPC,没那么容易。跟什么 TS 无关的,本质上就是要深入理解到 ipc 原理,还有语言特性。要用 toString 或者 replacer 之类的 JS 初级语法糖,或者用 RPC 之类的框架进行封装都可行,不过带来的代价不一定是所有开发者都能接受的。

在 dashboard 上加一个 --disable-gpu 试试看?

ipc通信那就慢多了

2.4.6 原生 ws 有数据丢失。我们的项目使用了(js) string 压缩后传递,升级到 2.4.6 后无法解压。

1.10.3 和 2.4.5 没有此问题。

@jare

提了小建议:不同的项目能不能自动使用不同的预览端口,不然多个项目同时开发的话,localStorage里的数据会串@jare

端口项目设置里面可以设置

我知道可以自己设置,但我更希望有自动设置