Godot中的信号

server/2024/10/24 1:07:25/

目录

概念

signal

connect方法连接Callable 

信号要求参数

查看信号

连接信号

监听信号

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取消连接


http://www.ppmy.cn/server/134308.html

相关文章

Excel使用技巧:视图-新建窗口,方便对比同一个文件里的数据;视图-冻结窗格,方便 数据滚动的时候标题栏不动。

Excel的正确用法: Excel是个数据库,不要随意合并单元格。 数据输入的时候一定要按照行列输入,中间不要留空,不然就没有关联。 视图-新建窗口,方便对比同一个文件里的数据 在同一个文件中,为了避免来回在…

HTTP Proxy环境下部署Microsoft Entra Connect和Health Agents

在企业环境中,时常需要通过使用HTTP Proxy访问Internet,在使用HTTP Proxy访问Internet的环境中部署Microsoft Entra Connect和Microsoft Entra Connect Health Agents可能会遇到一些额外的配置步骤,以便这些服务能够正常连接到Internet。 一…

关于武汉芯景科技有限公司的限流开关芯片XJ6241开发指南(兼容LTC4411)

一、芯片引脚介绍 1.芯片引脚 二、系统结构图 三、功能描述 1.CTL引脚控制VIN和VOUT的通断 2.CTL引脚控制STAT引脚的状态 3.输出电压高于输入电压加上–VRTO的值,芯片处于关断状态

内核提供的通用I2C设备驱动I2C-dev.c分析:file_ops篇

往期内容 I2C子系统专栏: I2C(IIC)协议讲解-CSDN博客SMBus 协议详解-CSDN博客I2C相关结构体讲解:i2c_adapter、i2c_algorithm、i2c_msg-CSDN博客内核提供的通用I2C设备驱动I2c-dev.c分析:注册篇 总线和设备树专栏: 总线…

C++学习笔记----9、发现继承的技巧(三)---- 尊重父类(1)

当写继承类的时候,需要清楚父类与子类之间的交互。像生成顺序,构造函数链,以及转化都可以是问题的根源。 1、父类构造函数 对象不会马上就能干活;它们必须由父类以及所包含的任意对象进行构建。c定义了如下的生成顺序&#xff1a…

安装和简单使用Milvus

安装和简单使用Milvus 1 介绍 Milvus是国产的高性能分布式向量数据库。 # Milvus官网 https://milvus.io/# 安装文档 https://milvus.io/docs/install-overview.md# Python的对应关系和接口文档 https://milvus.io/api-reference/pymilvus/v2.4.x/About.md2 安装Milvus 2.1…

CTFHUB技能树之文件上传——前端验证

开启靶场,打开链接: 看到提示是js前端验证 直接F12查看前端源代码: 可以看出对上传的文件做了限制,只能上传.jpg、.png、.gif文件 (小插曲:本来我想着直接删除onsubmit处的代码的,但是删了之后…

Kafka之消费者组与消费者

消费者(Consumer)在Kafka的体系结构中是用来负责订阅Kafka中的主题(Topic),并从订阅的主题中拉取消息后进行处理。 与其他消息中间件不同,Kafka引入一个逻辑概念——消费组(Consumer Group&…