想做个快捷生成脚本的creator插件,但缺少相关文档

插件对于五月份前的我也是个小白,自从被虐的死去活来,才发现插件是个玄学:joy:

这个是异步的,不然就要用 await promisify(function(){}) 才行

插件 assetdb API 都在这 2 个文档里写着啊

main process (https://docs.cocos.com/creator/manual/zh/extension/api/asset-db/asset-db-main.html)

renderer process (https://docs.cocos.com/creator/manual/zh/extension/api/asset-db/asset-db-renderer.html)

对于在场景脚本里面给节点挂载脚本组件只能挂载引擎组件吗?自定义组件怎么挂载呢?我传递脚本名没有成功

解决了,我是在刷新资源回调里面addComponent的,但是addComponent中js.getClassByName并没有立即获取到类,延迟几帧就解决了

mark:heart_eyes:

兄弟,有没有办法通过getComponent获取到的组件拿到组件脚本所在的url,我把组件的uuid解码后发现与脚本资源的uuid不对应,导致uuidToFspath和uuidToUrl都拿不到url

jsFile.__scriptUuid

1赞

喵啊铁汁,你咋找到这个uuid的

在窗口调试输入uuid代码提示处理的…
当时我也找了好久哎

新建脚本文件成功后,立即addComponent会报错,需要加个延迟,我猜应该是要等新建文件后编辑器刷新一下后才能正常add,有没有办法注册编辑器刷新的回掉呀?

我的办法是定时轮询调用cc.js.getclassname,获取到了就取消轮循任务,执行addComponent,但是发现addComponent执行成功了,没报错,但是组件也没添加上,玄学…

只要是插件创建的脚本,执行cc下的api时就得小心翼翼的,不知道这个脚本什么时候才在编辑器中生效的,我现在都是加延迟,感觉不是什么好办法啊

同问。。。我也想知道这个编辑器刷新完成的回调 :joy:

我也是这样处理:joy:

我怎么拿不到节点的信息啊,下面两个都拿不到,大佬们看看怎么获取节点信息啊

var selection = Editor.Selection.curSelection(‘node’);
Editor.log(selection); // 这里确实是有 uuid 的,和右键 node 查看的 uuid 是一样的
// 1
let nodes = cc.engine.getInstanceById(selection);
Editor.log(nodes);
// 2
selection.forEach(element => {
Editor.log(cc.engine.getInstanceById(element));
});

你的鼠标选中Node没有

选中了,有拿到 id 的

我测试下有消息,这函数不能传数组吧
屏幕快照 2020-12-25 19.16.49

这行代码是有限制在哪里使用吗