有没有刚好对应到这个帖子的分支?
v2.4.7的内容比帖子的新。
Mask 白屏的问题有解决吗?
我们是用 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,
};
成员函数不是实例上的属性,只是 prototype 上的,自然不会被收发了。消息的接收方需要有能力识别并且反序列化(同样 new 一个)FuncObj 才行。
建议自己转成 JSON 进行传送。
我估计是引擎把插件序列号了之后扔给调度中心,然后调度管理器反序列化来实现在调度中心处判断是否有某个名称的消息响应函数。
但是如果可以把消息扔给各个子模块自行判断 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通信那就慢多了
提了小建议:不同的项目能不能自动使用不同的预览端口,不然多个项目同时开发的话,localStorage里的数据会串@jare
端口项目设置里面可以设置
我知道可以自己设置,但我更希望有自动设置
mac版本cocos dashboard里2.4.6还是7月27日版本,retry but not work
所以修归修,2.4.6之后别增加功能如何?如果还增加功能,修到何时是个头?
正式版是 7.21 发的,p1 确实是 7.27 的版本。