Godot中的信号

ops/2024/10/24 10:03:29/

目录

概念

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/ops/128059.html

相关文章

OpenEular + KVM + virt-manager 笔记

OpenEular KVM virt-manager 配置网桥 yum install -y bridge-utils#进入网络脚本路径 cd /etc/sysconfig/network-scripts/ #创建一个桥接网卡 nmcli c a con-name br0 ifname br0 type bridge #将ens33的连接修改为从属连接 nmcli c modify ens33 connection.slave-type …

在虚拟化环境中,虚拟机的资源分配是否真的能够完全等效于物理服务器?是否有某些特定的工作负载在虚拟化环境中始终无法达到理想表现?

目录 1. 虚拟化技术的基本原理与资源管理 2. 资源分配的等效性问题 3. 特定工作负载在虚拟化环境中的表现 4. 性能优化与虚拟化环境的选择 5. 结论 虚拟化技术的广泛应用为数据中心的资源管理与部署带来了革命性的变化。虚拟机(VM)通过抽象化的方式…

【景观生态学实验】实验二 景观类型分类

实验目的 1.掌握ArcGIS软件的基本操作:通过课堂理论学习与实验课的实际动手操作,学习并熟练掌握如何利用ArcGIS软件对遥感影像进行一些较为基础的数据处理与分析工作,具体包括波段合成、图像镶嵌、图像裁剪与图像分类等; 2.熟悉…

鸿蒙HarmonyOS NEXT 5.0开发(2)—— ArkUI布局组件

文章目录 布局Column:从上往下的布局Row:从左往右的布局Stack:堆叠布局Flex:自动换行或列 组件Swiper各种选择组件 华为官方教程B站视频教程 布局 主轴和交叉轴的概念: 对于Column布局而言,主轴是垂直方…

红队-安全见闻篇(下)

声明 学习视频来自B站UP主 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 硬件设备(知道对应的硬件上对应的扫描器就性) 一、硬件设备…

申请软件测试CNAS实验室认证人员方面要做好哪些准备?

人员是软件测试实验室申请CNAS实验室认证的一个重要要素,也是CNAS实验室体系建设的重要部分,本文我们一起来全面梳理一下,软件测试CNAS实验室人员相关内容。 一、软件测试CNAS实验室人员组成 软件测试实验室需要设置四类人员,第…

[手机Linux PostmarketOS]七, Linux使用selenium爬虫

一,selenium安装 # 用pip 安装 selenium pip3 install selenium --break-system-packages 二,安装浏览器Chrome Alpine Linux 环境中没有google Chrome, 使用 Chromium 浏览器作为 Chrome 的替代品,Chromium 是 Chrome 的开源版本…

EM算法(期望最大算法、Expectation Maximization Algorithm)

EM算法(期望最大算法、Expectation Maximization Algorithm) 引言 EM算法,全称为期望最大(Expectation Maximization)算法,是一种从不完全数据或有数据丢失的数据集(存在隐含变量)中求解概率模…