18.信号
Posted empist
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了18.信号相关的知识,希望对你有一定的参考价值。
通常希望发送当实例中发生某事的通知。 GDScript支持创建内置的Godot信号。 使用 signal 关键字可以轻松地在GDScript中声明信号。
# No arguments.
signal your_signal_name
# With arguments.
signal your_signal_name_with_args(a, b)
这些信号可以在编辑器中连接,也可以像常规信号那样连接。 获取声明信号的类的实例,并将其连接到另一个实例的方法:
func _callback_no_args():
print("Got callback!")
func _callback_args(a,b):
print("Got callback with args! a: ", a, " and b: ", b)
func _at_some_func():
instance.connect("your_signal_name", self, "_callback_no_args")
instance.connect("your_signal_name_with_args", self, "_callback_args")
也可以将参数绑定到缺少自定义值的信号:
func _at_some_func():
instance.connect("your_signal_name", self, "_callback_args", [22, "hello"])
当来自多个对象的信号被连接到一个回调且发送方必须被识别时,这是非常有用的:
func _button_pressed(which):
print("Button was pressed: ", which.get_name())
func _ready():
for b in get_node("buttons").get_children():
b.connect("pressed", self, "_button_pressed",[b])
最后,通过使用 Object.emit_signal 方法来发送定制信号:
func _at_some_func():
emit_signal("your_signal_name")
emit_signal("your_signal_name_with_args", 55, 128)
some_instance.emit_signal("some_signal")
以上是关于18.信号的主要内容,如果未能解决你的问题,请参考以下文章