Cocos Creator v2.4.6-p1 版本说明

有没有刚好对应到这个帖子的分支?
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

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

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

麻烦 https://github.com/cocos-creator/engine-native/pull/3603 回滚这个 PR 试试

已经回退到2.4.5了。有空了再升级试。

大佬有空看看这个问题不: creator 2.4.3 底层传递Texture2D到js层,得到空对象 - Creator - Cocos中文社区

mac版本cocos dashboard里2.4.6还是7月27日版本,retry but not work

所以修归修,2.4.6之后别增加功能如何?如果还增加功能,修到何时是个头?

正式版是 7.21 发的,p1 确实是 7.27 的版本。