_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
)。
您正在查找鼠标事件。是否有一些控件接受鼠标输入?请注意 Control
s 将在其他节点之前接受鼠标输入,即使它们在它们后面。您需要将他们的 mouse_filter
设置为忽略。
一个常见的陷阱是使用 ColorRect
或 TextureRect
作为背景,并将 mouse_filter
设置为停止(默认设置),然后无法获取输入。
我是 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
)。
您正在查找鼠标事件。是否有一些控件接受鼠标输入?请注意 Control
s 将在其他节点之前接受鼠标输入,即使它们在它们后面。您需要将他们的 mouse_filter
设置为忽略。
一个常见的陷阱是使用 ColorRect
或 TextureRect
作为背景,并将 mouse_filter
设置为停止(默认设置),然后无法获取输入。