如何通过编辑器插件,调用保存预制体的更改

image
如图,当前处于预制编辑面板。 我如何通过编辑器插件,调用保存预制体的更改

在场景中,通过await Editor.Message.request(“scene”, ‘apply-prefab’, nodes.uuid); 是可以保存修改到预制体资源,在预制体编辑面板,无效

大哥 解决了没有啊

可以 save-scene 与 close-scene 进行保持或者关闭

我想在编辑 预制的时候 调用一下代码 类似点击了保存
搜到了
let content:string = cce.Utils.serialize(assetInfo);
await Editor.Message.request(‘asset-db’, ‘save-asset’, urlOrUUID, content);

但是assetInfo不知道怎么获取 并且3.8.5 插件会报错cce找不到

是已经进入到预制模式了,吗?image

如果有直接, save-scene 就可以了

是进了预制模式,调用save-scene会弹出选择保存新场景名称的弹框

具体的操作是什么,是不是普通场景有修改没有进行保存,就进入到预制模式了?

我发现预制体A里面嵌套了预制体B,当我预制体B进行了修改去除了部分内容,但是实际上预制体A序列化内容还是旧信息,当我打开A预制体并且手动保存一次之后A预制体才会自动同步预制体B的改动进行序列化,这个有什么方式能够通过代码调用吗?因为如果嵌套了预制体B的预制体有很多的话,都需要这么手动操作一遍才行。目前使用 await Editor.Message.request(‘asset-db’, ‘refresh-asset’, urlOrUUID);
await Editor.Message.request(‘asset-db’, ‘reimport-asset’, urlOrUUID);这两个都没用

你可以做个插件,然后代码写在场景进程

await Editor.Message.request(‘scene’, ‘open-scene’, prefabUuid);
await Editor.Message.request(‘scene’, ‘apply-prefab’, cce.Scene.rootNode.uuid);
await Editor.Message.request(‘scene’, ‘close-scene’, prefabUuid);

1赞

感谢感谢,我刚刚自己又试了下,发现通过这两个方法也可以实现,打开预制体然后保存场景

await Editor.Message.request('asset-db', 'open-asset', urlOrUUID);
await Editor.Message.request('scene', 'save-scene');

这样也可以

1赞

mark 插眼