[ 编写插件,扩展 Inspector,自定义属性的类型不能定义为数组? ]

组件代码:↓

普通组件(正常效果):↓

插件扩展Inspector:↓

扩展包代码:↓

警告提示:↓

定义数组是有其他什么额外的操作我没有执行吗?

creator 版本 1.2.2-beta.2

测试包↓
p_test.rar (2.7 MB)

1赞

目前 array 和 object 属性都还无法用 ui-prop 直接判定出来。所以在自定义 Inspector 遇到这两种 prop 的时候,需要显示的写 cc-array-prop, cc-object-prop, 写法如下:

<cc-array-prop :target.sync="target.test_1"></cc-array-prop>
<cc-object-prop :target.sync="target.test_2"></cc-object-prop>

你好,我用cc-array-prop来扩展一个属性时:

surfaceDisabledArea: {
    default: [],
    type: cc.Vec2
}
<cc-array-prop :target.sync="target.surfaceDisabledArea"></cc-array-prop>

属性右边的数组长度输入框只能手动输入数字,点框右边的上下箭头没有效果。
版本1.3.0 beta.3。

我这里定义了一份数组,貌似箭头是可以正常输入的。请问有没有现成的项目让我测试看看呢?

我新建一个项目做了一个Demo,1.3.0-beta3和beta4都不能使用箭头,麻烦看一下。谢谢!
InspectorDebug.zip (157.2 KB)

@toddlxt

我这里用 1.3.0-beta4 进行测试,是可以使用箭头正常增加和减少数组中的元素的,所以想知道你那边是否有其他报错信息或者 warning 信息?或者打开 devtools 查看一下。

另外,你使用的是 Windows 还是 Mac?

devtools里没有报错或者warning。另外箭头是能触发property的notify函数的,就是不会改变属性。
系统是Windows。

我再去 windows 机器上试验一下,晚些给你回复。

你好,这个问题我在 Windows 版本里重现了。会尽快修复

好的,谢谢!

还有个问题,属性里有readonly的参数时,cc-array-prop仍然可以改变数组长度,只是不能改变数组内容。Windows平台。@karasaya

拥有min, max的cc.Integer类型属性,如果输入一个超过[min, max]范围的数,回车,代码中的属性值变成输入的超范围的数,而Inspector显示的是修正到[min, max]范围后的数,这样就不一致了。应该代码中获得的属性值是修正到[min, max]范围后的数?
比如有个属性我设置min:1, max:4, type: cc:Integer。编辑器中输入0,代码中获得0,编辑器中显示1。希望变成代码中也获得的是1。@karasaya

你好,这个问题已经在 1.3 版本里修复了。1.3 发布后,你可以再试试。

1赞