Button 的 Interactable 的bug

button 设置 Interactable false ,注册的事件依然可以被触发

自顶一下啊啊

自己在Node上注册的事件是不受Button组件影响的。

1赞

只有注册的事件是Button组件的事件才会受影响。

怎么在代码里面注册Button组件的事件?不是拖动的,不是Node上的

代码添加Button事件示例,把这个脚本挂到一个拥有button组件的节点上,点击Button会log “Button Event!”:

// TestButton.js
cc.Class({
    extends: cc.Component,
    // use this for initialization
    onLoad: function () {
        let eventHandler = new cc.Component.EventHandler();
        eventHandler.target = this.node; // 某个节点
        eventHandler.component = "TestButton"; // 该节点上的某个Component名称
        eventHandler.handler = "log"; // 该Component的某个方法名
        eventHandler.customEventData = "Button Event!"; // 事件携带的自定义数据
        this.node.getComponent(cc.Button).clickEvents.push(eventHandler);
    },
    
    log: function(event, customEventData) {
        cc.log(customEventData);
    }
});

上面的四个属性相当于属性检查器里的: