目录
[Button - text属性](#Button - text属性)
节点直接使用emit_signal方法通过字符串的方式触发信号
概念
- 当我们定义一个信号时,我们可以将很多的函数方法连接到这个信号,最后当我们触发这个信号的时候,被连接到信号的方法都会被调用
- 因此,信号可以作为事件使用,当某些事件被触发,订阅事件的方法就会被调用
signal
我们使用signal关键字定义一个事件
使用emit方法触发信号
connect方法连接Callable
- 使用connect方法将一个Callable连接到信号
- Callable是一个函数的地址,将信号被触发时,Callable指定的函数就会被调用
信号要求参数
- 信号也可以要求参数,定义信号时,将信号名后面加括号,里面填写参数
- 定义参数后,连接到信号的函数必须也要接收同样类型的参数
查看信号
连接信号
- 双击要连接的信号,会弹出连接窗口,我们可以选择连接信号的节点
- Godot编辑器会自动为节点的脚本添加一条函数
- 绿色的箭头,说明这个函数通过编辑器被连接到一个信号里
- 可以在属性编辑器信号那一栏,看到信号所连接的所有函数
- 右键信号的一条连接,可以将这条连接断开
- 然后手动删除脚本中连接信号的方法定义
监听信号
Godot内置的一些节点通过信号处理事件,我们需要监听信号执行处理
比如Button节点,我们在场景内创建一个Button节点,并调整它的大小、位置
Button - text属性
在节点属性浏览器中,修改text属性会更改「按钮」显示的文本
- Button节点继承于BaseButton
- BaseButton提供了一些信号,让我们可以监听「按钮」的事件
pressed
- 当「按钮」被按下后,会触发pressed这个信号
- 我们可以将一个方法接连到这个信号来处理「按钮」被按下时触发的事情
连接源
- 蓝色名字的节点是连接源
- 就是持有这个信号的节点
「按钮」的信号连接
- 我们可以将信号连接到一个持有脚本的节点中,并可以指定接收信号的方法的名称
- 右侧的「选取」按钮,可以在脚本中已经存在的方法中,选择一个进行连接
- 连接成功后,方法左侧出现绿色箭头
- 运行
- 我们点击按钮,Godot自动触发pressed信号,所有连接到信号的函数同时触发
使用代码,将方法与信号相连接
- 我们将节点从节点树中拖动到脚本中,Godot会为我们添加一条这个节点的引用
- 运行无绿色箭头
节点的connect方法
- 使用节点提供的connect方法,后面加字符串形式的信号名称,最后再加Callable
节点直接使用emit_signal方法通过字符串的方式触发信号
- 通过信号中的connect方法,将一个Callable连接到信号中
- 使用disconnect将一个Callable取消连接