CanvasLayer嵌套场景内的Button无法点击问题求助
检查Inventory场景根节点的鼠标过滤属性
打开你的Inventory场景,选中根节点,在检查器中找到Mouse Filter(Godot 4)或Mouse Mode(Godot 3)属性。如果该属性设置为Stop,会拦截所有鼠标事件,导致子节点的Button无法接收点击。将其修改为Pass,让鼠标事件可以透传到下层的Button节点。确认节点的可见性与运行状态
确保CanvasLayer和Inventory节点的Visible属性处于勾选状态,同时Process Mode设置为Inherit或Always。若节点处于隐藏或未激活状态,输入事件会被直接忽略。检查Button自身的可点击设置
逐个检查Inventory场景内的Button节点,确认Input Pickable属性已勾选。如果该属性未开启,Button本身无法响应鼠标点击。排查层级遮挡问题
查看Inventory场景内是否有其他Control节点(如Panel、ColorRect)覆盖在Button上方,且这些节点的Mouse Filter设置为Stop。这类节点会抢占鼠标事件,导致下方的Button无法被触发。调整上层节点的Mouse Filter为Pass或修改Z-Index让Button处于更高层级。验证代码实例化的参数设置
如果你是通过代码实例化Inventory场景,检查代码中是否意外修改了节点的mouse_filter或input_pickable属性。比如误写了inventory_instance.mouse_filter = Control.MOUSE_FILTER_IGNORE这类代码,会直接禁用节点的输入响应。
内容的提问来源于stack exchange,提问作者Dandy Wallaby

