关于CocosCreator编辑器使用上的一些问题

最近在尝试对CocosCreator到UIKit做一些扩展
我们到需求是:
(1)自动生成一些代码模版。例如代码中需要引用当前正在编辑的prefab。
由于目前没有找到API怎么获取当前正在编辑到文件信息。
(2)于是退而求其次,我们从uuid-to-mtime.json文件中手动copy出 当前正在编辑文件到uuid。
(3)后经过改良,改用 脚本去读uuid-to-mtime.json文件,用ui-select(cocoscreator控件跟vue原来到控件用法还不一样)后经过多次测试显示如下


(4)但又遇到个问题,所选内容无法保存,每次重新打开或者切换文件时都被覆盖掉了。

1赞

https://docs.cocos.com/creator/manual/zh/extension/reference/ipc-reference.html
大兄弟,了解一下IPC消息

试过了,scene能拿到uuid,但是prefab拿不到文件UUID

let asUuid = Editor.Selection.curSelection('asset') //资源管理器中当前选择的文件的uuid
let nodeUuid = Editor.Selection.curSelection('node') //层级管理器中当前选择的节点的uuid

另外你的需求如果是改prefab里node的内容的话可以用这个api
Editor.Ipc.sendToPanel('scene', 'scene:set-property', { id: this.node.id, path: 'name', type: 'String', value: event.target.value, isSubProp: false, });

https://forum.cocos.com/t/node/61511

太感谢了,我先试试:grin:

我其实是想获取这个文件的UUID,
let asUuid = Editor.Selection.curSelection(‘asset’) 获取的是资源管理器中选择到文件UUID:weary:
又其他type可选么

那用’asset’不就能获取到了么,暂时没发现有其他的type可用,或者你可以艾特一下官方

Editor.remote.currentSceneUuid 这个方法可以获取当前编辑的场景
当前正在编辑的 Prefab 没有特别好的办法可以获取。建议交由插件使用者进行操作。