Godot中的信号

目录

概念

signal

connect方法连接Callable

信号要求参数

查看信号

连接信号

监听信号

[Button - text属性](#Button - text属性)

pressed

连接源

「按钮」的信号连接

使用代码,将方法与信号相连接

节点的connect方法

节点直接使用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取消连接
相关推荐
GGMM7891 天前
VX4B600100 控制板全解析:施耐德 ATV630 变频器核心控制单元详解
笔记·变频器·变频器维修
kdxiaojie1 天前
Linux USB驱动阅读笔记(1)
linux·笔记·学习·usb
半生过往1 天前
前端学 Java 课程笔记
java·前端·笔记
九硕智慧建筑一体化厂家1 天前
楼宇自控|智慧建筑核心引擎!楼宇自控系统,赋能建筑高效低碳运维
运维·人工智能·笔记·智慧城市
GGMM7891 天前
施耐德 VX5A1HC90110(VX5A1HD9011)ATV61/ATV71 90‑110KW 电源驱动板详解
笔记·变频器·变频器维修
Wang's Blog1 天前
PostgreSQL笔记48: 全文检索与向量检索的对比与混合检索实践
笔记·postgresql·全文检索
liuyicenysabel1 天前
Flask 个人站 iProfile 上线笔记(k3s + Nginx + Let‘s Encrypt)
笔记·nginx·flask
深蓝海拓1 天前
基于QtPy (PySide6) 的PLC-HMI工程项目(十五)后续完善和改进:PLC端数据解析的防粘包、残包、废包、拆包
笔记·学习·plc
小黄蚁1 天前
LVGL学习笔记(六)
笔记·学习
Wang's Blog1 天前
PostgreSQL笔记49:向量检索核心算法、索引调优与过滤策略深度解析
笔记·算法·postgresql