Inspector中显示自定义数组

我的本意是希望使用inspector来自定义一个组件中的自定义结构数组的编辑:代码如下:

const {ccclass, property, inspector } = cc._decorator;

export enum RP_TYPE {
    DEFAULT = 0,
    TYPE1,
    TYPE2,
    TYPE3,
}

export interface STRUCT  {
    type:RP_TYPE
    count:number
}

@ccclass
@(CC_EDITOR && inspector("packages://ui/inspector/test.js"))
export default class Test extends cc.Component {

    private _data:Array<STRUCT> = []
    @property
    public get data() : Array<STRUCT> {
        return this._data
    }
    public set data( value:Array<STRUCT> ) {
        this._data = value
    }


    // 以下为测试代码
    private _nums:Array<number> = []
    @property
    public get nums() {
        return this._nums
    }

}

_data是一个STRUCT类型的数组,我希望在UI上编辑这个结构的数据,类似于Button中的clickEvents事件:先修改数组大小,再编辑每个单元中的各元素。_nums成员是为了对照才加上的。
以下为test.html的代码:

<ui-prop name="Nums" indent="indent">
    <ui-num-input type="int" min="0" value="target.nums.value.length" @confirm=""></ui-num-input>

</ui-prop>

<ui-prop name="Resources" indent="indent">

  <ui-num-input type="int" min="0" value="target.data.value.length" @confirm=""></ui-num-input>
</ui-prop>

最后在编辑器中的显示效果是,两个输入框中都显示为 NaN。

问题出在哪里,还请高手帮忙!

你好,ts 里好像有点问题,可以新建 js 脚本。
将 propery 内属性类型设置为另一个 ccclass 对象就可以了

const STRUCT = cc.Class({
    name: 'STRUCT',
    properties: {
        bar: 1,
    }
});

cc.Class({
    extends: cc.Component,

    properties: {
        foo: {
            type: tt,
            serializable: true,
            default: tt,
        },
    },
});

ts 问题我们会在下个版本修复

大佬你好,

楼主这个例子里Test 类有一个inspector,如果Test里的属性STRUCT想用独立的inspector,应该怎么写?我这么做的目的是增加STRUCT inspector的复用性。

我看到一些内部类和对应的inspector存在一个映射表

const e = {
  'cc.ClickEvent': 'cc-event-prop',
  'cc.CurveRange': 'cc-curve-range',
  'cc.GradientRange': 'cc-gradient-range',
  'cc.Gradient': 'cc-gradient',
  'cc.ShapeModule': 'cc-shape-module'
}

我的自定义类是否要修改这个映射表?

尝试了下这里的方法,没有成功