GDScript中的信号
在Godot引擎中,信号(Signals)是用于对象之间通信的一种强大机制。信号允许对象在特定事件发生时通知其他对象,而无需了解这些对象的内部结构或直接调用它们的方法。这种解耦的设计使得代码更加模块化和易于维护。在本节中,我们将详细介绍如何在GDScript中使用信号,包括信号的定义、连接和发射,以及一些常见的应用场景。
信号的定义
在Godot引擎中,信号的定义非常简单。你可以在脚本中使用signal
关键字来声明一个信号。信号可以有任意数量的参数,这些参数在信号发射时会被传递给连接到该信号的回调函数。
示例:定义一个信号
假设我们有一个Player
节点,当玩家拾取到道具时,我们希望通知其他节点。我们可以在Player
脚本中定义一个信号:
# Player.gd
extends CharacterBody2D
# 定义一个信号,当玩家拾取到道具时发射
signal item_picked_up(item_name: String)
func _ready():
# 初始化代码
print("Player ready")
func pick_up_item(item_name: String):
# 拾取道具的逻辑
print("Picked up " + item_name)
# 发射信号
e