自定义属性检查器如何应用到指定的字段上

我们这边有个自定义的数据结构,作为一个Component的字段。现在需要做一个自定义的编辑界面,Component的其他字段使用缺省的检查器,如果是自定义的类型字段,则使用我们自定义的编辑界面。这个需求该如何实现?(字段可能是个自定义类型的数组)

我们查阅了相关文档,文档(https://docs.cocos.com/creator/3.8/manual/zh/editor/extension/inspector.html)中描述如下:

“================================================
属性检查器 里,定义了两个层级的数据:

  1. 选中的物体主类型
  2. 渲染主类型内容时,内容里包含的子数据类型

当在 层级管理器 / 资源管理器 中选中一个 节点 / 资源 时,Cocos Creator 会将物体被选中的消息进行广播。当 属性检查器 接收到消息后,会检查被选中的物体的类型,例如选中的是节点,那么类型便是 node

针对两种类型,允许注册两种渲染器:

  1. 主类型渲染器
  2. 主类型渲染器接收数据开始渲染的时候,允许附带子类型渲染器

示例里选中的是 nodenode 上携带了多个 component ,所以主类型就是 node ,而子类型则是 component
================================================”

示例仅给出编辑node的情况下,检查器如何编写。请问如何自定义某个类型的字段检查器?

@ccclass(‘类名’)
export class 类名 {
/*自定义/
@property
xxx
} 在你的component里面使用该类型

放弃了,完全无法找到自定义的方式。可能官方没打算让人自定义属性检查器。

V7投稿|【杨宗宝】Cocos Creator3.x 自定义一个漂亮的组件布局 有吧看看这个帖子

感觉没啥实际用处。

例如某业务场景中,会用到自定义的类型

@ccclass("ddddd")
export class DummyData {
    @property
    public data1: string;
    @property
    public data2: string;
}

相关的Component

@ccclass("xxxx")
export class DummyComponent extends Component {
    @property
    prop1: Node;

    /// many other property
    /// ......
    ///

    @property({type: [DummyData]})
    items: DummyData[] = [];
}

这种场景下,如何在DummyComponent的属性编辑面板中自定义DummyData的编辑面板,同时其他的属性沿用系统缺省的编辑面板?

Unity中是可以指定某种数据类型使用自定义的编辑面板,这样就不会影响其他的属性编辑。

从文档上看,Cocos似乎只能自定义整个Component的编辑面板。但是在实际业务中,更多场景的是某种类型的属性需要自定义编辑面板,而不是去重新绘制整个Component的编辑器。目前我们在官方文档和野文档中都无法找到相关的内容。

综上所述,感觉官方的自定义属性检查器的功能有些鸡肋了,或者是文档不够完善,细节功能尚未公开?