跳到主要内容

信号

节点在发生某些事件时会发出信号,此功能无需在代码中硬连接它们就能让节点相互通信。使用信号允许场景中的一个物体对另一个物体的变化做出反应,而无需相互引用。使用信号可以限制耦合,并保持代码的灵活性。 例如,按钮在按下时会发出信号。您可以连接到此信号以运行代码以响应此事件,例如启动游戏或打开菜单。其他内置信号可以告诉您两个对象何时碰撞,角色或怪物何时进入给定区域等等。您还可以针对自己的内容量身定制新的信号。

新建信号

在自定义单元中,点击“信号”后的“+”即可添加一个函数;

create_signal

添加完成后可以在节点选项卡下查看:

signal_effect

编辑信号参数

第1步,单击变量右侧的新信号按钮或者右键选择菜单中的“编辑”选项,弹出以下弹窗:

update_signal_property

第2步,在弹出的弹窗中可以将变量设置修改各种不同类型。如下图所示。

signal_edit

信号的重命名和删除

可以对变量重新命名或者右键删除;

edit_signal

信号的使用

连接信号

第1步,切换到节点选项卡,选中发送方下面的新信号

connect

第2步,双击发送方下面的新信号,在弹出的对话框中选择接收方后,单击下面的连接按钮即可;

connnect_signal

接收信号

在收到发送方发来的信号后,接收方做出回应【为了便于演示,在接收方收到信号后将自己的颜色设置为红色】

receive_event

发送信号

直接拖动新信号到交互编辑器。在满足某个特定的条件后,发送一个信号给接收方【这里以可见性为真时发送信号】;

send_signal

自定义信号应用

自定义信号更为深入的、具体的应用,详见下面链接:

信号系统的应用