4.6 2026-01-27
当按下一个按钮时,我们期望执行对应的函数,比如“点击按钮,开始游戏”,点击(pressed)信号可以关联(connect)到一个函数上。
hud.get_node("Button").pressed.connect(new_game)
func new_game():
print("new game")
运行游戏,按下按钮后可以看到控制台上打印"new game"。
在传统设计模式中,GDScript的信号(signal)对应着观察者模式(Observable)。
如果我们想创建一个自定义的事件,可以使用signal关键字定义,再使用emit()触发事件。
# 定义一个事件
signal sun_rised
func _ready():
# 事件与函数关联
sun_rised.connect(_on_sun_rised)
func some_func():
# 触发事件
sun_rised.emit(old_value, new_value)