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
Post a Comment