我正在 Godot 中开发一款游戏,我正在尝试创建一个系统,在该系统中我可以单击并按住精灵并拖动以移动同一个精灵,但我在弄清楚它时遇到了一些麻烦。
我尝试过寻找鼠标节点、寻找鼠标信号等解决方案,但都找不到任何解决方案。我还尝试检查鼠标的坐标并将其移动到那里,但也找不到方法来执行此操作。我已经尝试解决这个问题有一段时间了,所以我很感激您的帮助。
Godot 内置拖放支持仅适用于
Control
,不适用于 Node2D
(例如 Sprite2D
)。因此,首先考虑您是否真的需要 Sprite2D
或者 TextureRect
会更好。 Sprite2D
是2D游戏世界中的图形对象,TextureRect
是UI中的图形对象。
现在,如果你真的想拖动一个
Sprite2D
...我们可以双重解决这个问题:
Sprite2D
(我建议使用 Area2D
)。另请参阅如何使用 C# 检测 Godot 中 AnimatedSprite2D 的点击?Sprite2D
跟随指针...最简单的实现是将 global_position
的 Sprite2D
更改为 get_global_mouse_position
中的 _process
。