返回 导航

UE5

hangge.com

UE5 - 数组使用详解(创建、遍历、添加、删除元素)

作者:hangge | 2025-07-23 08:36
    蓝图可以使用数组作为变量保存数据,我们可以把数组简单地想象为只能存放一组单一类型变量的容器。例如浮点型数组只能存放单个或多个浮点型的变量。数组的用法非常广泛,本文将讲解如何创建数组和如何使用数组。

1,创建数组

(1)新建一个“Actor”类蓝图并命名为“Array”,双击打开蓝图。在“我的蓝图”面板中新建一个“文本”型变量并命名为“TextArray”,单击“编译”按钮编评编译蓝图。

(2)选择“TextArray”变量,在“细节”面板中单击“变量类型”右侧的箭头按钮设置“容器类型”为“数组”,然后编译蓝图。

(3)编译后“TextArray”变量的默认值变为“0 数组元素”,单击“添加元素”按钮,为数组添加 3 个元素,分别为“索引[0]”“索引[1]”“索引[2]”。

2,通过索引获取值

(1)按住 Ctrl 键,在“我的蓝图”面板中拖曳“TextArray”变量到“事件图表”面板。然后拖曳引脚到空白处后新建一个“Get(复制)”节点(名称为“GET”),该节点有两个参数。第 1 个是通配符数组参数,可以连接任意数组;第 2 个是索引,需要指定某个 Index

(2)下面我们将获取到的索引 0 的值打印出来:

(3)编译并保存后拖曳“Array” 蓝图到关卡中,进入 PIE 运行模式后输出“hangge

(4)注意,“Get (a copy)”和“Get (a ref)”两个节点都可以获取元素,它们区别在于:
  • Get (a copy) 为 获取副本,该节点会将目标元素的数据完整复制一份,返回给调用者。对这个副本所做的任何修改,都不会影响原始数组或容器中的数据。
  • Get (a ref) 为获取引用,该节点返回的是指向原始元素的引用(指针或引用语义)。对该引用所做的修改,会直接反映到原数组/容器中。

3,遍历数组

(1)“For Each Loop”节点会让数组从 0 开始遍历。“Array Element”引脚会输出对应元素,“Array Index”引脚会输出对应元素的索引值。
  • 运行结果如下:

(2)使用“Reverse forEachLoop”节点可以从数组的最后一个元素遍历到第 1 个元素,其使用方法与“ForEachLoop”节点相同但遍历方向相反。
  • 运行结果如下:

4,在数组末尾添加元素

(1)如果要为数组添加一个新的元素,可以使用“ADD”节点。假设当前数组共有 3 个元素,使用“ADD”节点时会自动添加第 4 个元素,返回素引值 3(因为从 0 开始计数,01234 个)。

(2)运行结果如下:


5,在指定位置插入元素

(1)使用“INSERT”节点可以在作为输入参数传递的索引出添加一个元素,并且在此索引之后的元素都将依次向下移动到下一个索引位置。
(2)比如下面样例,我们在索引 1 处插入一个元素,那么位于索引 1 处的后一个元素将移动到索引 2,位于索引 3 的元素将移动到索引 4,依次类推。

6,设置数组中的某一个元素

(1)使用“设置阵列元素”节点可以为指定数组的指定索引对应的元素赋予指定的值。例如下面将索引为 1 的元素为“bing
  • 运行结果如下:

(2)通过“Size to Fit”布尔引脚可以设置是否将元素个数调整到合适的数量。比如数组只有 3 个元素,所以索引值只能到 2。如果要使用“设置阵列元素”节点设置“索引[2]”以上的元素,则需要勾选“Size to Fit” 选项,这样引引掌会自动扩充数组到需要设置的索引处,未勾选“Size to Fit” 选项时设置超出索引范围的元素就会报错。这里设置索引为 5 的元素为“bing”。
  • 运行结果如下:

7,清除与移除元素

(1)用“CLEAR”(清除)节点可以一次性删除数组中的所有元素。如果当前数组的长度为 3,调用“CLEAR”节点后长度将会变成 0

(2)使用“REMOVE INDEX”(移除索引)节点可以移除指定索引对应的元素。如果输入 0,第一个元素会被删除。

(3)使用“REMOVE”(移除)节点可以移除一个数组中所有具有指定内容的元素。如果在该节点的引脚中输入“hangge”,那么调用该节点后会删除所有包含“hangge”的元素。

8,获取数组元素数量,最后一个元素索引

(1)我们可以使用“LENGTH”节点来获取数组中的元素数量。

(2)使用“LAST INDEX”节点则返回数组最后一个元素的索引,其值等于“LENGTH - 1

9,检查数组是否为空

(1)“IS EMPTY”节点可以检查数组是否为空,为空则返回 true,不为空则返回 false

(2)“IS NOT EMPTY”节点则与“IS EMPTY”节点相反,检查数组是否不为空,为空则返回 false,不为空则返回 true

10,获取数组的随机元素

(1)我们可以使用“Random Array Item”节点来获取数组的随机元素。

(2)上面代码,每次运行时获取并打印出来的元素都是随机的。

11,在事件图表中创建数组

(1)“Make Array”节点用于从“事件图表”选项卡的“变量”类别下创建数组,单击“添加引脚”按钮,添加输入引脚。
(2)例如下面关卡蓝图样例,该关卡中有三个 PintLight 实例,通过“Make Array”节点来创建“Point Lights Array

评论

全部评论(0)

回到顶部