Godot信号

 信号可以在代码中声明

signal node_ready

signal weapon_shooted(damage)

第二种带有变量的声明除了可以在编辑器中看到之外,我没有发现有什么不同,信号发射时默认不带参数。

信号发射时,链接到的函数参数如果比信号参数少,则不能触发。但是函数参数更多且未传入的参数有默认值则可以触发

emit_signal("test_signal", "hello")

func __on_test_signal_triggered(a, b = " world"):

    print(a + b)


自带参数和bind的参数不同,bind参数自动发送,优先度在自带参数之后
注意bind的参数在绑定之后就不可更改了,即使参数已经发生了变化,仍旧发送最初的数值
自带参数可以用一个信号达成不同效果
bind可以同时绑定多个参数。

func _ready():

    self.connect("test_signal", self, "_on_test_signal_triggered", ["default bind var"])

    emit_signal("test_signal", "button pressed")

func _on_test_signal_triggered(var1, var2):

print(str(var1) + str(var2))

输出button presseddefault bind var


Comments

Popular posts from this blog

活在当下-从尾巴摇狗的荒谬中解放自我

Metroidvania银河恶魔城游戏开发指南(一)

折衷主义建筑