_Unhandled_Input 方法未按预期工作

_UnhandledInput method not working as I expect

我是 Godot Mono 的新手,我不明白为什么 _UnhandledInput 方法不起作用。我也没有收到任何错误或警告。

using Godot;
using System;

public class GameScene : Node2D
{
    PackedScene towerPackedScene;

    public override void _Ready()
    {
        towerPackedScene = (PackedScene)GD.Load("res://Tower.tscn");
    }

    public override void _Process(float delta)
    {
                    
        
    }

    public override void _UnhandledInput(InputEvent @event)
    {
        if (@event is InputEventMouseButton mouseButton)
        {
            GD.Print("clicked"); // does not show message on output
            KinematicBody2D tower = (KinematicBody2D)towerPackedScene.Instance();
            tower.Position = mouseButton.Position;
            this.AddChild(tower);
        }
    }
}

推测输入未被处理。换句话说,一些其他节点正在接受输入(例如 _input)。

您正在查找鼠标事件。是否有一些控件接受鼠标输入?请注意 Controls 将在其他节点之前接受鼠标输入,即使它们在它们后面。您需要将他们的 mouse_filter 设置为忽略。

一个常见的陷阱是使用 ColorRectTextureRect 作为背景,并将 mouse_filter 设置为停止(默认设置),然后无法获取输入。

Using InputEvent