📅  最后修改于: 2023-12-03 15:30:53.142000             🧑  作者: Mango
在 Godot 引擎中,使用 GDScript 可以轻松连接信号。信号被定义为一个对象在特定事件时发送的消息。通过连接信号,我们可以在事件发生时执行一些操作。
下面是一个简单的示例,它演示了如何连接一个按钮组件的 pressed
信号,当用户按下按钮时,它将输出一条消息:
func _ready():
var button = get_node("Button")
button.connect("pressed", self, "_on_button_pressed")
func _on_button_pressed():
print("Button pressed")
在上面的代码中,我们获取了一个名为 Button
的组件并连接了它的 pressed
信号到 _on_button_pressed
函数。当按钮被按下时,_on_button_pressed
函数将被调用。
在 connect
函数中,第一个参数是信号的名称,在这个例子中是 pressed
。第二个参数是连接的对象,这里是 self
,意味着连接到当前脚本。第三个参数是要调用的函数的名称,这里是 _on_button_pressed
。
有时候我们需要在信号被触发时传递一些额外的参数。在 GDScript 中,我们可以通过向 connect
函数传递一个数组来实现这一点。下面是一个示例,它演示了如何连接一个带有自定义参数的信号:
func _ready():
var button = get_node("Button")
button.connect("custom_signal", self, "_on_custom_signal", [1, "Hello"])
func _on_custom_signal(param1, param2):
print("Custom signal triggered with params:", param1, param2)
在上面的代码中,我们连接了 custom_signal
信号,并将 [1, "Hello"]
作为参数传递给了 _on_custom_signal
函数。当 custom_signal
信号被触发时,_on_custom_signal
函数将被调用,并传递两个参数 param1
和 param2
,这里分别是 1
和 "Hello"
。
当不再需要信号时,可以使用 disconnect
函数来断开信号连接。下面是一个示例,它演示了如何断开连接一个按钮的 pressed
信号:
func _ready():
var button = get_node("Button")
button.connect("pressed", self, "_on_button_pressed")
button.disconnect("pressed", self, "_on_button_pressed")
func _on_button_pressed():
print("Button pressed")
在上面的代码中,我们首先连接了 pressed
信号,然后在下一行中断开了信号。这意味着当按钮被按下时,不会调用 _on_button_pressed
函数。
通过连接信号,我们可以轻松地实现各种功能。在 GDScript 中,连接信号非常容易,并且可以通过传递自定义参数来进一步扩展。如果不再需要连接的信号,可以使用 disconnect
函数来断开连接。