0
我想添加两个不同的函数到godot的按钮节点。我希望它在左键单击时显示一条消息,并使其附加的精灵在右键单击时消失。有没有办法在gdscript中做到这一点?有没有办法将多个函数添加到godot的按钮节点中
我想添加两个不同的函数到godot的按钮节点。我希望它在左键单击时显示一条消息,并使其附加的精灵在右键单击时消失。有没有办法在gdscript中做到这一点?有没有办法将多个函数添加到godot的按钮节点中
我不确定是否可以使用Button类区分左键单击和右键单击。但是,有多种简单的方法让精灵以您想要的方式进行反应。
我不确定您是否只是将按钮添加为点击后作出反应的区域。如果是这样,你也可以添加一个Area2D(或3d)和一个碰撞形状到你的精灵。通过碰撞形状,您可以将Area2D节点的“input_event”信号链接到Sprite脚本(或您在此场景中使用的任何脚本)。链接Signal最简单的方法是通过编辑器左下角的Signal ribbon。
编辑器会自动创建一个新的功能,你可以编写你想喜欢的任何行为:
func _on_Area2D_input_event(viewport, event, shape_idx):
if event.is_action('left_click'):
print("Left click message")
elif event.is_action('right_click'):
self.hide() # hides the node which owns the script...
之前,你可以用你需要定义“left_click”和“right_click”的输入地图is_action功能根据编辑的喜好。通常,使用输入映射而不是硬编码所有按键和按钮总是一个好主意。
我希望有帮助。
此致敬礼和开心编码。
我认为这个想法比我在做的更好,但是'event.is_action'会抛出一个错误,说它找不到标识符“event”。我不知道我是否有一个奇怪的Godot版本,因为我在论坛上看到过这个版本,但它并没有为我工作过:/ –
很难在没有看到代码的情况下确定问题。你可以发布一些片段吗?事件“标识符”是_on_Area2D_input_event函数的参数。你是如何创建这个功能的?您是使用Godot编辑器还是只是在脚本中输入函数?另外,如果你认为你有一个糟糕的Godot版本,只需下载一个新版本(当前的稳定版本是2.1.3),然后再试一次。 – magenulcus