UE蓝图(一)——自定义事件、函数与宏

news2024/9/28 5:32:40

自定义事件、函数与宏是UE蓝图中实现功能的三种方式,本文对这三种方式的特点与使用场景进行总结

文章目录

  • 自定义事件
  • 函数
  • 进阶
    • 触发与调用
    • 函数的访问权限
    • 纯函数(Pure function)
  • 参考资料


自定义事件

事件(Events) 是从游戏性代码中调用的节点,其使得蓝图执行一系列操作,蓝图本身会存在一些UE声明好的事件,比如 BeginPlayTickDestroyed,通过对这些事件的实现,我们可以在对应事件发生的时候执行我们定义好的逻辑。
除了系统声明好的事件,我们也可以自己在蓝图中声明并定义事件,即自定义事件。比如下面我们定义了一个屏幕打印字符串的事件。

然后在其他事件中可以调用我们的自定义事件,比如在Begin Play中调用CS_Print,那么在游戏开始的时候该蓝图类实例就会输出Hello
自定义事件是可以有输入的,我们在 Detail 界面可以看到 Inputs 属性,我们给 CS_Print 添加一个String 类型的输入

相应地更改下CS_String的实现

那么在触发该事件时,需要传入相应的字符串类型的参数,比如这里的 123


函数

这里的函数也是一个执行的逻辑,感觉更像是类中的方法,子类可以重写父类的函数,比如继承于 Actor 类的子类,有18个可以重写的函数。

和自定义事件不同的是,函数既可以有输入,也可以有输出,比如我们定义一个 F_Int2Str 函数,传入一个数,传出该数对应的字符串。

我们可以在事件/函数中调用函数,也可以在函数中调用自定义事件。


宏也可以有多个输入和输出,但相较于函数,宏的输入和输出的类型可以是执行引脚,也就是说函数固定只有一个执行引脚,而宏可以有多个(也可以是0个)。

比如蓝图中的 For Each Loop 就有两个输出执行引脚,分别表示循环体内部的执行以及循环结束后的执行。


进阶

上面的内容简单地介绍了自定义事件、函数与宏的使用,下面的部分属于进阶内容。


触发与调用

自定义事件与函数和宏的一个区别在于,自定义事件可以看作是触发,函数与宏可以看作是调用。触发的意思是在一个事件的执行流程中,我们触发了一个自定义事件,那么自定义事件并不会阻塞我们后续的执行流程,也就是说触发的自定义事件和触发的事件后面的执行流程是并行的。

而对于函数和宏,我们是调用,也就是说只有执行完函数和宏内部的执行流程才会执行调用函数和宏后面的执行流程。

这里我们用一个例子进行验证,在宏和自定义事件中延迟3s(这里需要补充的是函数内部不能使用delay),而在触发/调用自定义事件和宏后续的执行流程是输出一个Hello

宏的执行结果

自定义事件的执行结果

可以看到宏后面的输出是延迟了3s后才打印Hello,而自定义事件是直接就打印Hello了。


函数的访问权限

蓝图中的函数也有相应的访问权限设置,这里的与C++中类的访问权限一致,Public就是可以在类外访问,Protected表示仅可以在类内和子类内访问,Private表示仅在类内可访问


纯函数(Pure function)

蓝图中函数可设置为纯函数,仅需勾选上 Pure

纯函数没有执行引脚,所以一般要有输出引脚,否则也没法在执行流程中调用,纯函数一般用于返回类的成员/状态,且一般不会去改变类的成员/状态。

比如下面我们定义了一个返回类中Name成员的纯函数

那么我们可以在Tick事件中调用在这里插入图片描述
执行结果


参考资料

【虚幻引擎5教程】电子沙盘+大语言模型:S01E02_蓝图入门
【虚幻5基础课堂】1. 一个案例了解事件与宏运行机制_UE5_UnrealEngine

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1980838.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信报名二维码怎么做

在这个快节奏的时代,每一个细微的便捷都能成为连接品牌与消费者的桥梁。今天,就让我们一同探索一种创新而高效的营销利器——微信报名二维码,它是如何以简约而不简单的姿态,重新定义活动报名的体验,成为品牌营销中的璀…

FTP未授权访问漏洞(匿名登陆)

FTP未授权访问漏洞(匿名登陆) FTP弱口令或匿名登录漏洞,一般指使用FTP的用户启用了匿名登录功能,或系统口令的长度太短、复杂度不够、仅包含数字、或仅包含字母等,容易被黑客攻击,发生恶意文件上传或更严重…

江苏苏州高校大学智能制造实验室数字孪生可视化系统平台建设项目验收

苏州高校大学智能制造实验室数字孪生可视化系统平台建设项目,旨在通过数字孪生技术,实现对智能制造过程的实时监测、数据分析与决策支持。该平台不仅能为实验室的教学和科研提供有力支持,还能为企业的智能制造转型提供技术支撑和解决方案。 …

String的底层构造

1.String类对象的构造&#xff08;后面有每一个接口的实现&#xff09; #define _CRT_SECURE_NO_WARNINGS 1 #pragma once #include<iostream> #include<assert.h> using namespace std;namespace bit {class string{public:typedef char* iterator;typedef const…

提升写作技能:掌握ai写作免费生成器的高效使用法

最近&#xff0c;#沉浸式感受火把节#话题在网络上爆红&#xff0c;相关的宣传视频和文案铺天盖地。 但仔细观察&#xff0c;你会发现这些文案大多千篇一律&#xff0c;缺乏创意。火把节&#xff0c;这个充满激情与神秘的节日&#xff0c;难道就无法以更独特的方式呈现吗&#…

Linux:Linux权限解析

一、Linux下的用户分类 在Linux下&#xff0c;有两种用户&#xff0c;一种是超级用户&#xff0c;一种是普通用户 超级用户&#xff1a;可以再linux系统下做任何事情&#xff0c;不受权限限制&#xff08;制定规则&#xff0c;但不需要遵守规则&#xff09; 普通用户&#xff1…

Stable-Diffusion1.5

SD1.5权重&#xff1a;https://huggingface.co/runwayml/stable-diffusion-v1-5/tree/main SDXL权重&#xff1a;https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/tree/main diffusers库中的SD代码pipelines&#xff1a;https://github.com/huggingface/di…

来点八股文(六) 网络Linux调优

性能指标 如何衡量程序的网络性能&#xff1f;你会看哪一层&#xff1f;看哪些指标&#xff1f;用哪些工具&#xff1f; 我们通常用带宽、吞吐量、延时、PPS&#xff08;Packet Per Second&#xff09;等指标衡量网络的性能。 应用层**[wrk、Jmeter]** **每秒处理请求数和延…

ComfyUI插件:ComfyUI-BrushNet节点

前言&#xff1a; 学习ComfyUI是一场持久战&#xff0c;而ComfyUI-BrushNet是最近的局部重绘节点&#xff0c;其包含BrushNet和Powerpaint两个主要节点&#xff0c;其中BrushNet有SD1.5和SDXL两个版本&#xff0c;PowerPaint只有1.5的模型可以使用&#xff0c;学会该插件&…

自动驾驶中的三维坐标系变换:原理、方法与实践

文章目录 1. 摘要2. 背景介绍2. 常用的坐标系定义2.1 全局坐标系&#xff08;Global Coordinate System&#xff09;2.2 车体坐标系&#xff08;Vehicle Coordinate System&#xff09;2.3 相机坐标系&#xff08;Camera Coordinate System&#xff09;2.4 图像坐标系&#xff…

Tech Talk: SSD架构与功能模块详解

在之前的系列文章中&#xff0c;我们介绍了固态硬盘的系列知识&#xff0c;包括闪存的介质、原理&#xff0c;以及作为SSD大脑的控制器设计&#xff0c;本文将详细介绍SSD架构以及功能模块。 SSD架构简介 ◎SSD架构示意图 如上图所示&#xff0c;典型的SSD架构包括主机接口、SS…

vue编译为render函数:模板编译过程

模板编译过程&#xff1a;模板编译为render函数&#xff0c;返回vnode。再执行diff和patch。 使用webpack&#xff0c;vue-loader,会在开发环境下编译模板。 虚拟dom和diff算法 1&#xff0c;将dom抽象为虚拟dom&#xff0c;diff算法对比新旧虚拟dom&#xff0c;只把变化的部…

瓜子二手车在财务中台结账核心系统 TiDBTiFlash 实践

作者&#xff1a; jshan 原文来源&#xff1a; https://tidb.net/blog/69f61649 一、前言 瓜子二手车&#xff0c;作为业界独树一帜的二手车电商平台&#xff0c;正以其创新力量重塑整个二手车行业。我们以用户为中心&#xff0c;致力于提供卓越的交易和服务体验&#xff0…

熊海1.0cmsPHP代码审计

熊海1.0cmsPHP代码审计 环境搭建 下载之后直接使用phpstduy搭建就好了 工具使用 比如使用seay审计系统 sql大多数是存在的&#xff0c;但是没有文件上传&#xff0c;这个就是需要自己去验证 漏洞审计 SQL注入 有点多&#xff0c;随便拿一个举例子 就比如我们的登录页面…

蚓链数字化生态系统:引领企业迈向数字化新时代

在当今竞争激烈的商业世界中&#xff0c;数字化转型已成为企业生存和发展的关键。然而&#xff0c;面对复杂的业务流程、海量的数据以及不断变化的市场需求&#xff0c;许多企业在数字化的道路上举步维艰。这时&#xff0c;蚓链数字化生态系统解决方案宛如一盏明灯&#xff0c;…

苹果手机清理软件:让你的iPhone保持最佳状态

随着iPhone成为我们生活中不可或缺的一部分&#xff0c;设备上积累的无用数据也在日益增多。这些数据不仅占据宝贵的存储空间&#xff0c;还可能影响设备的性能。幸运的是&#xff0c;市场上提供了多种苹果手机清理软件&#xff0c;帮助用户有效管理手机空间&#xff0c;提升设…

具有重加权位置和变换稀疏性的鲁棒非刚性配准算法 (RPTS)

该算法针对非刚性配准的问题。相较于刚性配准&#xff0c;非刚性配准更具有挑战性。要解决的问题通常是不适定的&#xff08;ill-posed&#xff09;、且自由度高&#xff0c;因此对噪声和异常值很敏感。为了提高非刚性配准算法对噪声和异常值的鲁棒性&#xff0c;李坤等人提出了…

【MetaGPT系列】【MetaGPT完全实践宝典——多智能体实践(辩论赛)构建】

目录 前言一、智能体1-1、Agent概述1-2、Agent与ChatGPT的区别 二、多智能体框架MetaGPT&#xff08;特朗普与拜登的二人辩论&#xff09;2-1、安装&配置2-2、使用已有的Agent&#xff08;ProductManager&#xff09;2-3、智能体对抗辩论——背景2-4、定义动作2-5、定义角色…

美亚科技现场检查问题不少:应收账款大幅攀升,与前员工交易金额巨大

《港湾商业观察》施子夫 6月27日&#xff0c;广东美亚旅游科技集团股份有限公司&#xff08;以下简称&#xff0c;美亚科技&#xff09;的IPO被北交所受理&#xff0c;保荐机构为广发证券。7月24日&#xff0c;北交所下发审核问询函。 此次IPO&#xff0c;美亚科技计划投资总…

GIS图形库更新2024.7.29-8.4

更多精彩内容请访问 dt.sim3d.cn Cesium 上周发布了1.120版本&#xff0c; ✨ 功能和改进 添加Transforms.computeIcrfToMoonFixedMatrix和Transforms.computeMoonFixedToIcrfMatrix这两个方法&#xff0c;用来计算给定时间内的月球固定坐标系和 ICRF&#xff08;国际天球参…