【UE5】蓝图

news2024/11/13 9:46:00

在开发过程中,不可避免地会有一些蓝图的操作。同时,蓝图也是UE很有特色的一个内容。

了解蓝图是什么(What is BP?)

广义上:蓝图是UE内置的脚本语言,可以书写类似代码的逻辑。(任何可以连那种块块的可视化代码都可以视为蓝图)
狭义上:指Blueprint Class,即蓝图类,是一个和面向对象语言类似的概念。(蓝图也有继承关系,基类是Object类。蓝图相对于传统的C++代码,它可以组合资源实现逻辑,而C++只有实现逻辑的功能,并不能组合资源)
蓝图中易混淆的概念:

  1. 流程线:
    · 通过白线连接,蓝图按照白线从前到后运行
    · 并不是所有节点都有流程线
    · 选中含有流程线的节点,按F9可以打上断点
    · 断电后,F10每次执行一个流程节点(单步执行)

一个很长串的逻辑,不一定完全依赖于逻辑线,单纯的数据线就可以实现一个较为复杂的逻辑,

  1. 数据线:
    · 通过各种彩色线(数据引脚)相连的节点,表示数据流动的方式与方向(颜色表示数据类型)
    · 部分节点没有逻辑线,是纯粹的数据节点,最终必须作用于流程节点,否则数据不能被使用
    · 我们把一个节点左侧的引脚叫“输入引脚”,右侧的箭头叫“输出引脚”
    输入/出引脚
    部分接口存在数据节点和流程节点两种形式,注意区分
    · 每个数据输入引脚会重新计算所有数据流

数据节点:未连接流程线
流程节点:存在流程线

了解蓝图基本的使用方法

让我们打开UE5看一个例子吧!
在这里插入图片描述

在这里插入图片描述
打开全蓝图编译器
在这里插入图片描述
在Event Graph界面进行蓝图编辑
在这里插入图片描述

简单的理解如何优美的构建蓝图

事件分发器是蓝图中相较于C++现成的工具

事件分发器(EventDispatcher)
通过将一个或多个事件绑定到 事件分发器 ,可以在调用事件分发器时触发所有这些事件。这些事件可以绑定到蓝图类中。但事件分发器也允许在关卡蓝图中触发事件
· 可以绑定事件,每一个分发器有着自己的参数,事件必须匹配自身参数
· Dispatch接收外部的call并分发给所有绑定在自身下的Event
· Event可以绑定一个或多个Dispather,也可以在流程中解绑

在这里插入图片描述
新增事件分发器
在这里插入图片描述
添加参数
在这里插入图片描述
再分发器上绑定事件
在这里插入图片描述
通过事件输入引脚连入新的事件
在这里插入图片描述
· 如ActorBP中已有Event(如 Event End Play),也有Dispather(如End Play),通常我们使用了现成的Event,而没有关心内部的Dispather,我们也可以给原有的Dispather绑定自己的事件,或者创建新的Dispather或Event

函数(Function):
是属于特定蓝图(Blueprint)的节点图表,他们可以在蓝图中重复使用。函数具有一个由节点指定的单一进入点,函数的名称 包含一个执行输出引脚
在这里插入图片描述
纯函数(Pure Function):
· 函数可以为 纯 类型,纯函数承诺不以任何方式修改 状态 或类的成员
· 纯函数在调用时没有流程线,但在函数内部有
· 纯函数连接到数据引脚,当需要依赖它们的数据时,编译器会自动执行它们,对于纯函数连接到的每个节点,纯函数将被调用一次。
在这里插入图片描述
宏(Macro):
宏有一个有隧道节点指定的入口点和出口点,每个隧道都可以有任意数量的执行或数据引脚,当在其他蓝图或图表中使用时,这些引脚在宏节点中可见
· 宏不可继承
· 宏可以控制流程而函数并不可以
取最大值
双重嵌套IF语句
折叠节点(Collapse Nodes)
· 折叠节点是一堆节点的折叠
· 隶属于某一面板,不应该复用节点
· 仅起到简化蓝图的作用

了解蓝图的优劣

优点:

  1. 可视化编程
  2. 方便调参,快速开发
  3. 不需要编译,可以快速实现简单逻辑
  4. 语法糖多,可以缓解阅读压力
  5. 网上的教程和接口文档较多,方便查询
  6. 可以在实现逻辑的同时组合资源

缺点:

  1. 可视化编程,节点较多极其难以阅读
  2. 性能低下
  3. 不方便调试
  4. 接口类型多,混乱,不方便查找
  5. 难以实现较为复杂的运算或算法逻辑
  6. 难以修改UE提供的内容,拿不到基类数据结构,可实现逻辑较少
  7. 语法糖虽然多,但语法逻辑不清晰,连线没有约束,未定义行为极多
  8. 定义变量极其困难,数组操作繁琐
  9. 蓝图节点特殊性强,复用性弱
  10. Cast操作直接导致强引用,加载蓝图性能低下
  11. 使用蓝图难以理解游戏运行的方式

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

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

相关文章

代码随想录算法训练营第四十三天【动态规划part05】 | 1049. 最后一块石头的重量 II、494. 目标和、474.一和零

1049. 最后一块石头的重量 II 题目链接: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 求解思路: 等于把石头尽量分成重量相同的两堆 动规五部曲 确定dp数组及其下标含义:容量为j的背包,最多能装…

各大电商平台双十一“狂飙”,如何选择商城系统?

今年是“双十一”的第十五年。作为各大平台和品牌的全年最重要的营销节点,品牌们可谓是来势汹汹,各种促销活动和优惠力度让人眼花缭乱。 淘天数据显示,天猫促销活动开售当晚,155个品牌开卖成交额突破1亿元;首小时内7.1…

前端数组方法汇总集锦

前言 数组主要使用场景有: 存储和处理数据:数组是一种有序的数据结构,可以用来存储和处理多个相关的数据。在前端开发中,我们经常使用数组来存储和处理列表、表格、选项等数据。 循环和遍历:数组提供了循环和遍历的功能…

three.js学习总结超详细附带素材及源码

three.js学习总结超详细附带素材及源码 安装three.js npm install --save three引入three.js import * as THREE from threethree.js结构 three.js坐标 创建一个场景 scene场景,camera相机,renderer渲染器 创建一个场景 this.scene new THREE.Scene(…

Redis 性能管理 主从复制与哨兵模式

目录 redis性能管理 内存碎片率 如何清理内存 面试题 Redis雪崩 Redis集群大面积故障 面试:Redis的缓存击穿 Redis的缓存穿透 Redis的集群高可用方案 redis的主从复制 哨兵模式 redis性能管理 redis的数据缓存在内存当中 info memory #在redis数据库中查…

金蝶云星空部署包导出文件

文章目录 金蝶云星空部署包导出文件 金蝶云星空部署包导出文件 打开补丁包后,贴入导出文件的文件夹,然后按F2即可导出到目标文件夹。

软件测试工具常用的都有哪些

软件测试工具是用于辅助软件测试的软件工具,可以帮助测试人员执行测试用例、记录测试结果、跟踪缺陷状态等,提高测试效率和质量。以下是一些常见的软件测试工具: 一、AutoRunner自动化测试工具 AutoRunner(简称AR)是国内自主研发…

如何防止网络被入侵?

随着互联网的普及,网络安全问题越来越受到人们的关注。其中,如何防止网络被入侵是一个重要的问题。本文将介绍一些防止网络被入侵的方法,帮助大家保护自己的网络安全。 一、使用强密码 强密码是防止网络被入侵的第一道防线。一个好的密码应该…

d3dcompiler_47.dll缺失怎么修复,d3dcompiler_47.dll的作用有哪些

d3dcompiler_47.dll丢失是一种常见的电脑问题。如果你遇到了这个问题,不要惊慌,下面的方法可以帮助你解决。本文将详细介绍解决d3dcompiler_47.dll丢失问题的步骤,让你手把手地学会。 一.解决d3dcompiler_47.dll丢失问题的步骤 解决方法一&a…

2.4G无线收发芯片 XL2400P使用手册

XL2400P 系列芯片是工作在 2.400~2.483GHz 世界通用 ISM 频段的单片无线收发芯片。该芯片集成射 频收发机、频率收生器、晶体振荡器、调制解调器等功能模块,并且支持一对多组网和带 ACK 的通信模 式。发射输出功率、工作频道以及通信数据率均可配置。芯片已将多颗外…

驶入产业发展快车道,汉鑫科技人工智能研发中心正式启用!

11月18日,汉鑫科技人工智能研发中心正式启用。中心立足烟台,服务全国,聚焦工业智能、智能网联、智慧城市三大业务板块,以人工智能技术赋能政企实现“数智化”转型升级。该中心的启用标志着汉鑫科技在人工智能研发应用领域迈上了新…

JavaFx学习问题3---Jar包路径问题 (疑难杂症)

文章目录 前置提要:解决方法:调试JAR包后续补充: 前置提要: 我做了的JavaFx程序中,需要通过一个文件夹的相对路径,获取文件夹下所有音频文件的路径,把这些路径字符串放到一个List集合里,然后用Media让它播放声音。问题…

UVA11584划分成回文串 Partitioning by Palindromes

划分成回文串 Partitioning by Palindromes 题面翻译 回文子串(palind) 问题描述: 当一个字符串正序和反序是完全相同时,我们称之为“回文串”。例如“racecar”就是一个回文串,而“fastcar”就不是。现在给一个字符串s,把它分…

【擎标】CCID信息系统服务商交付能力等级认证标准

为顺应信息技术服务业发展趋势及市场需求,维护市场秩序,加强行业自律,促进信息系统服务商交付能力的不断提高,增强信息系统服务商创新能力和国际竞争力,支撑信息系统服务商转型提升,中国软件行业协会、企业…

数字化时代,企业数据治理成熟度如何建设

企业数字化转型不是从0到1,而是从1到100。转型是一个过程,场景从简单到复杂,应用从局部到广泛,持续优化、逐步成长。 数据治理的成熟度评估模型 可以说,几乎所有成熟度模型都借鉴了CMM的思路,基本都是将所…

2023 极客巅峰线上

linkmap 考点: 栈溢出ret2csu栈迁移 保护: 开了 Full RELRO 和 NX, 所以这里不能打 ret2dl 题目给了一些有用的函数: 在这个函数中, 我们可以把一个地址的数据存放到 BSS 段上. 漏洞利用 可以把一个 libc 地址比如 readgot 读取到 bss 上, 然后在修改其为 syscall. 后面就是…

Grafana Panel组件跳转、交互实现

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

实验4.数据全量、增量、比较更新

【实验目的】 1.利用Kettle的“表输入”,“表输入出”,”JavaScript代码”组件,实现数据全量更新。 2.熟练掌握“JavaScript代码”,“表输入”,“表输入出”组件的使用,实现数据全量更新。 【实验原理】 …

软件第三方测评报告可作哪些用途?

软件第三方测评报告是指由独立、中立的第三方机构对软件进行全面、客观、科学的评估和分析后所做的报告。该报告基于系统而严密的评测流程,通过多项指标和标准,对软件的性能、功能、易用性、安全性等方面进行评价,为用户提供一个权威、可靠的…

D. Absolute Beauty - 思维

题面 分析 补题。配上题解的图,理解了很长时间,思维还需要提高。 对于每一对 a i a_i ai​和 b i b_i bi​,可以看作一个线段的左右端点,这是关键的一步,那么他们的绝对值就是线段的长度,对于线段相对位…