cocos creator 3d 属性 visible参数动态修改

在cocos creator 中,可以通过以下方式,设置属性是否在编辑器内可见:

properties:
    {
        isLongTouch : {
            default : false,
            tooltip : "是否打开长按",
        },
        longTouchTime : {
            default: 2000,
            tooltip : "长按响应时间(单位:(ms/毫秒))",
            visible() {
                return this.isLongTouch;
            }
        }
}

在cocos cerator 3d中,应该怎么去让属性longTouchTime 的visible参数随isLongTouch 而改变?我试了几中写法,都报错。感谢大佬指点。

目测你不是用的装饰器@property,你不贴你的代码怎么吐槽

这就贴上来,以后注意!

@property({ type: cc.CCBoolean, tooltip: '是否打开长按' })
public isLongTouch = false

@property({ type: cc.CCFloat, visible: true, tooltip: '长按响应时间(单位:(ms/毫秒))' })
public longTouchTime = 2000

我想要做到:longTouchTime 的visible参数和跟着属性 isLongTouch 的值 而变化,我用以下写法是不正确的,无法通过编译:

@property({ type: cc.CCFloat, visible: ()=>{return this.isLongTouch}, tooltip: '长按响应时间(单位:(ms/毫秒))' })
public longTouchTime = 2000

这里函数声明时的作用域this是指向全局对象的,但是调用时的上下文是对的,不应该用箭头函数,用普通函数就行了

2赞

确实可行,感谢解答,给出我的改法:

@property({ type: EventHandler, visible:function() {return this.isDoubleClick}, tooltip: "双击的响应事件" })
public doubleClickEvent = null
1赞