Cocos数组属性Bug

引擎版本:Cocos 3.8.6
想通过面板布尔属性变量控制数组属性的显示,代码如下:
@ccclass(‘myTest2’)

export class myTest2 extends Component {

@property(CCBoolean)

isUseVector: boolean = false;

private _data: Vec2[] = [];

@property({ type: [Vec2], visible: function () { return this.isUseVector; } })

public get data(): Vec2[] {

    return this._data;

}

public set data(value: Vec2[]) {

    this._data = value;

}

}

问题:首次点击布尔属性显示出的数组属性可以正常操作(添加删除等),如图一所示,隐藏后再重新显示的数组属性就不能添加删除了,重置脚本组件也没有,如图二所示,点删除还会报错如图三所示。



image

求问是引擎bug还是我写法不对

顶顶顶 有大佬知道吗

编辑器的bug,我测试发现隐藏了重新显示后,改数组长度的时候 没有发送set-property消息,我猜是隐藏再显示的时候某些监听或者绑定漏了,
临时的解决方案你可以在显示后,选一下其他的节点再选回来,这样相当于刷新整个属性检查器又能改了

_data加个@property()

好的,重新选回来确实刷新了

加了也是和原来一样

如果你要保存预制或者场景的时候保存_data的数据,_data上面还是要加@property的,
不然没有序列化,就是你改的值没有保存的意思,重新打开又会变成默认的空数组

好的,感谢