ui-node 无法识别类型

ui-node 这个编辑器组件,在自定义面板中,无法判断自己定义的组件,只能识别Creator自己的组件。

<ui-node type="自己的组件"></ui-node>
如何像上面这样类型使用自己实现的组件。

@Knox

1赞

人工置顶:2:

<ui-node typename="自己的组件"></ui-node>

你这个没有,只是插件上的名字显示成了自己组建名字,类型应该是还是cc.node。不是组建吧。

ui-node 控件获取的是节点的 uuid 。名字显示只是让用户知道是哪个组件嘛,至于获取组件,还是需要插件自己在内部使用 cc.Node.getComponent 才行的。

是的,我现在就是想直接获得组件的uuid值,主要还是渲染进程中没有编译进自己的脚本进去,所以无法判断类型。只能判断Creator自己的类型,后面我打算自己写这个组件,暂时通过名称来判断,不通过function来判断,先把功能实现了。不知道会不会有坑。

scene:query-node 和 scene:query-node-info 好像可以获取到组件信息吧,可以试一下

是可以识别的,只是类型不是自己定义的组件的名称,而是Creator自己编译生成的一个id.
我不知道为啥classID和className不一样。

<ui-node type="自己的组件的classID"></ui-node>

自己继承cc.Component的组件,类型不能使用组件的名称作为类型检测.
例如:

export class Test extends cc.Component  {}

//不能这样,这样检测不到类型
<ui-node type="Test"></ui-node>

//正确是拿到Test组件的classID
具体的Test的ClassID可以查看,cc.js中_idToClass可以查看到具体ID。
注意:【新工程项目同样名称的组件,可能ClassID会不一样】
<ui-node type="classID"></ui-node>

666啊,自己琢磨出来的吗