UE5蓝图第四章:认识数组、自定义事件、函数、宏、时间轴、让你少走弯路...
Game艺视界原创文章原创 41196 1
实名

通过了实名认证的内容创造者

发布于 2023-5-25 15:16:59

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 Game艺视界 于 2023-5-25 15:18 编辑

正 文(仅个人学习笔记)
#什么是数组?由多个相同数据类型组成的集合称为数组
#蓝图中数组的特点有
  • 存入的数据类型必须一致
  • 动态,可添加,可删除
#如何设置数组有时您需要在一个地方保存一堆东西,比如库存系统。您需要创建一个对象数组。你怎么做到这一点?创建变量时,选择变量类型后,只需单击侧面的数组图标即可。它将使您的变量成为相同类型的数组

7be50a718dc5bd816a9c618a29efc3e3.png


#添加数组元素
将变量设置为数组后,执行编译,默认数组元素个数为0,要给数组设置默认值需要先指定数组的默认长度

c09e8bf3e1cd8e2736429a0ff53b300d.png


输出结果

#数组元素获取数组元素是按顺序存放的,要获取数组的元素,需要通过下标访问
1、下标:用于获取数组元素非负整数,从O开始,数组长度-1结束
2、获取数组元素:
Get(复制):只是获取当前数组的副本,更改后不影响原引用的数组
Get(引用):获取当前的数组,更改后将直接更改该数组



#查找项目、获取数组长度、元素下标
01-查找项目(findlterm):查找指定元素的下标;如元素中有此元素则返回这个元素,如果没有则返回-1


查找60返回2

结果正确


02-ADD增加数组在末尾处

03-addUnique增加一个元素,并保持它的独特性,如数组里面有相同的元素。则不添加

04-获取数组长度:Length节点

获取长度(lenght):默认我们索引是4个插入了一个所以现在是5个,显示的是我们插入值

05-获取数组最后一个元素:Last index


#数组元素添加、移除、是否包含06-插入数组元素(insert)


07-移除元素(Removeindex)判断数组中是否存在指定元素

移除索引2,那么索引3将变成2我们看下结果:30
08-removelterm(按照元素删除,相同元素全部删除)

09-containslterm(是否包含指定元素,返回布尔值)
包含于不包含反馈结果

10-last Index数组最后一个索引
11-resize-重新设置数组长度,没有赋值的元素,取默认值

12-Clear-清空数组

#数组遍历1、当我们需要对整个数组的元素进行操作的时候,就需要对数组进行遍历
2、数组遍历的方式:For Each Loop;For Each Loop with Break
For Each Loop
输入端
Array
输入数组
输出端
Loop Body
循环体
Array Element
当前遍历数组元素
Array Index
当前遍历数组下标
Complcted
遍历完成输出
For Each Loop with Break
Break
执行Break后遍历结束(查找到我们需要数组,进行判断,找到执行ture也就是Break;没找到执行False)

创建数组,添加数组元素




  • 我们在遍历数组中如果找到我们需要数组就结束遍历这样有助于节约性能所以需要For Each Loop with Break【遍历过程需要终止使用此节点】
  • 如果每个元素都要遍历就用For Each Loop

#蓝图类这些类蓝图定义了一种新类别或类型的Actor,就和其他类型的Actor的行为一样,这些Actor可作为实例进行放置,蓝图类根据功能可以分为很多种类,由于蓝图类属于资源,所以在内容浏览窗口右键创建蓝图类



父类
你可以创建多种不同类型的蓝图,当然在你做这些之前,你需要指定该蓝图的**Parent Class(父类)** 选择继承父类,允许你在自己的蓝图里面调用父类创建的属性。
下面是你创建蓝图是最常见的父类:

在这里我们选择Actor然后命名;双击打开操作面板与关卡蓝图类似
添加:显示组件层级关系

视口:显示我们蓝图类内容;事件图表:逻辑实现关卡蓝图类功能逻辑
组件:用于给蓝图类添加组件

关于蓝图编辑器有以下几个关键点:
  • 它包含数个工具和面板工具,用于创建变量、函数、数组等。
  • 它内置多种调试和分析工具,用于在网络中迅速除错并改进数据流
  • 在虚幻引擎中,取决于正在编辑的蓝图网络类型,蓝图编辑器将出现多种不同的独特形态。

蓝图可视化脚本是虚幻引擎中一个用途广泛的系统。蓝图可以控制关卡中的事件,为游戏Actor 添加基于脚本的行为,并在高度真实的游戏角色系统中控制复杂动画。在处理不同类型的需求时,蓝图脚本的出现位置和提供的工具会有所不同。这意味着在虚幻引擎中,蓝图编辑器可能会在不同场合和不同时机出现。不过,无论在何种情况下使用,蓝图编辑器都是一种能帮助你创建、编辑强大可视化脚本并控制游戏各种元素的工具。
蓝图编辑器是一种基于节点的图表编辑器。它是创建和编辑可视化脚本节点网络的主要工具,通常简称为蓝图。蓝图编辑器的设计对上下文(context)十分敏感,可在需要时单独访问对象的功能,在需要执行非常规操作时进行灵活处理。

好!我们添加组件

选中添加静态网格体组件;然后我们在细节面板添加静态物体,这样我们视口就可以显示了

03-添加变量:材质实例数组
这与我们之前有所区别是我们要在关卡中添加数组,所以我们需要在细节面板中开启:可编辑实例
这时候我们材质就来到了外边与内部性质一样
#函数
在编程中使用函数,可以让代码的结构更加模块化,减少代码的复用程度,基本上一个函数就是一个单一的功能.这样看上去更直观

在蓝图中也是一样,即使它是可视化的编程,但蓝图是由节点构成的,每一个节点就是一个功能,由这样的节点去连接成一些逻辑链,如果逻辑很复杂,那么看上去也是相当复杂的,因为节点非常的多.所以蓝图中也有函数这样的模块,用函数去包装一些单一的功能,让蓝图更加的简洁,易读

公共:蓝图外也可以方位受保护:子类继承可访问,外界不能访问
私有:只能再次图表可以访问


接下来我们可以在事件图表中调用

纯函数


#函数参数、返回值、纯函数介绍
  • 当两个功能整体逻辑一样,只有部分数据不一样的时候,可以封装为一个函数,然后通过传入参数的方式实现不同数据的处理
  • 当执行完一个函数后需要返回运算结果,就需要使用返回值
  • 纯函数就是没有输入节点的函数,需要借助其他功能节点执行函数。纯函数需要有返回值,否则没有意义

创建我们函数:减法(定义函数一定要定义返回值)

然后我们在事件图表调用函数


我们将会函数变成纯函数:没有了输入输出,结果一样,但是需要借助借助第三方节点输出

#函数、自定义事件、宏之间区别每个蓝图都可以看做是一个团队,函数、自定义事件、宏团队中各个组组长带领组员干活,也会相互合作
相同点函数与自定义事件:
  • 是可以将一段逻辑封装为功能
  • 都可以接收参数
  • 其他蓝图都可以直接调用

不同点:
  • 函数可以有局部变量,自定义事件没有
  • 函数可以多个输入,以及定义返回值,自定义事件可以有输入但没有输出返回值;宏也可以增加多个输入输出,并且可以添加
  • 自定义事件的逻辑是在事件图表定义,函数则需要单独使用一个图表
  • 函数不能使用delay,而自定义事件可以用delay、timeline。是因为函数调用需要等待结果,才会有后续动作,而事件只要触发就会继续往下面执行,宏可以用delay
  • 从逻辑上看:只要事件一触发,处理的逻辑和事件本身没有关系﹔而函数一般是通过传一些数据,最后输出结果,关注的是处理结果,从传入参数到执行逻辑返回数据整个过程都是函数体需要关注的
  • 自定义事件 (红队长,可以帮助其他组) 函数 (蓝队长可以帮助其他组) 宏 (灰队,不能帮助其他组,只干自己活)

选择:
  • 当只需要执行这个功能,而且具有延时功能时,用自定义事件
  • 当需要做运算并返回结果的,用函数

#局部变量在函数中定义的变量就是局部变量局部变量只能在函数体中访问,事件图表无法访问


#宏
蓝图宏整体功能与函数类似,都是对一些功能算法进行了封装,可以根据情况添加多个输入引脚与输出引脚函数与宏的区别:
  • 输出引脚函数只有一个引脚,宏可以有多个输入、
  • 其他蓝图可以调用函数,不能调用宏
添加宏参数

我们的宏类型有执行功能



#宏库
用于将多个宏管理起来库文件,由于是文件,所以需要创建宏库,我们可以在所有的蓝图中调用宏库中的宏在资源管理器中创建我们蓝图宏库
选择Actor


双击打开后我们可以创建多个蓝图宏

然后就可以咋事件图表调用我们所创建的宏
#TimeLine节点时间轴是一个特殊的节点,允许您随时间设置关键帧和修改值双击此节点将打开“时间轴编辑器”选项卡,您可以在其中添加轨迹。您创建的每个轨迹都会向该节点添加一个输出引脚。更新执行输出引脚在Timeline播放的每一帧都会触发,并允许您连接任何想要使用新值的节点。时间轴节点 (Timeline)是蓝图中的特殊节点,功能是在指定的时间内将指定值变化到目标值

TimeLine
输入

Play从当前时间开始播放
Play from Start从头开始播放
Stop在当前时间停止播放
Reverse从当前时间开始反向播放
Reverse from End从结尾开始反向播放
Set New Time将播放位置跳转到“新时间”输入指定的时间
输出

Update在播放时间线时激发每一帧
Finished当时间线到达终点时输出。当您手动停止播放时,它不会触发。
Direction播放的当前方向


设置时间长度与关键帧

时间5秒,值为3


#插值节点
插值 (Lerp) 节点: 根据Alpha的值返回A到B之间的值,Alpha的取值范围为0-1。黄金搭档: Timeline时间线节点
#蓝图类与关卡蓝图交互
在关卡蓝图中定义自定义事件在蓝图类中通过执行控制台命令(Execute Console Command) 节点来执行关卡蓝图事件注意事件必须为自定义事件,否则会调用失败Command中输入ce 事件名而且必须以ce开头,ce为关键字,ce后面需要加空格
新建自定义事件;打印字符串
在我们bp中调用:执行控制台命令;必须ce开头结果


基础知识篇共四章
  • 变量、数据类型、变量的运算
  • 分支、For循环、While循环、Do N、Do Once、Flip flop、Gate节点、Multi Gate节点
  • 第一人称角色的控制、射击功能、碰撞功能
  • 自定义事件、函数、宏、时间轴节点


下期我们集体案例练习
本期笔记分享就到这里,我们下期见!

评分

参与人数 3元素币 +19 活跃度 +9 展开 理由
yhbwx + 5 + 2 元素给力
xunmixunmi + 5 + 3 【点赞】这很有大网气质!
忍忍就好了... + 9 + 4 看看

查看全部评分

微信公众号:Game艺视界
使用道具 <
boss28  发表于 2025-1-20 16:09:41  
2#
666666666绝世好贴 期待更新
回复 收起回复
使用道具
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表