插件自定义当前选中node属性检查器

当在creator的场景编辑器中点击某个node的时候,需要开发者的插件面板捕获到这个node的相关信息,并对改node进行一些坐标,颜色之类的处理,有点类似 属性检查器的功能,不知道目前有办法实现不,查找到论坛上之前有人问过类似问题
http://forum.cocos.com/t/topic/51267

1赞
selection:activated
selection:deactivated

可以获得当前选中的节点

Editor.Ipc.sendToPanel('scene', 'scene:query-node', uuid, () => {});

可以拿到 node 的 dump 数据

Editor.Ipc.sendToPanel('scene', 'scene:set-property', {
    id: this.node.id,
    path: 'name',
    type: 'String',
    value: event.target.value,
    isSubProp: false,
});

最后要改数据可以发送这个消息让 scene 更改节点的数据

2赞

的确可以,谢谢,这个帖子也有讨论这个问题
http://forum.cocos.com/t/ipc/51698

写在panel对应的js里面也是可以的

调用ipc消息

Editor.Ipc.sendToPanel('scene', 'scene:set-property', {})

改变node的属性后,并没有提示保存,如果直接切换其他Prefab进行编辑,会导致当前正在编辑的Prefab丢失,保存的接口是啥呢?

Editor.Ipc.sendToPanel('scene', 'scene:set-property', {
    id: this.node.id,
    path: 'name',
    type: 'String',
    value: event.target.value,
    isSubProp: false,
});

isSubProp是什么意思呢,实际使用过程中发现不传递也没啥区别

不用管这个 isSubProp,这是用来标示判断最外层的类型不是最终类型的标记。
比如 [cc.Node], 这种数据类型并不是最外层的 Array

修改完成后发送一下这个消息就可以记录更改了~退出的时候会问是否需要保存~
这个流程有些问题,之后会做优化,暂时先这么发送吧。

Editor.Ipc.sendToPanel('scene', 'scene:undo-commit');