在虚幻引擎5中,Add和Add Unique是用于操作数组(Array) 的核心节点,主要区别在于是否检查元素的唯一性。
| 节点 | 功能 | 行为 |
|---|---|---|
Add |
向数组末尾添加一个新元素。 | 无论数组中是否已有相同值的元素,都会直接添加,数组长度+1。 |
Add Unique |
仅当数组中不存在相同值的元素时,才将其添加到末尾。 | 若元素已存在,则添加失败,数组保持不变。 |
🧑💻 详细使用案例与步骤
我们通过一个“管理背包物品”的案例来演示。假设你有一个 NameArray (名称数组) 变量,记录背包中物品的名字。
1. 使用 Add 节点
-
目标:不管背包里是否已有“药水”,都将其加入。
-
步骤:
-
创建数组变量:在蓝图“我的蓝图”面板点击“+”,新建一个变量,类型选为
Name的数组。 -
放置节点:在事件图表中右键,搜索并添加
Add节点。 -
连接节点:将
Add节点的Target Array引脚连接到你的数组变量(或直接拖拽变量到图表选择“获取”),New Item引脚输入要添加的元素,如“药水”。 -
触发执行:用任何事件(如“E键按下”)连接到
Add节点的执行输入引脚。
-
-
结果演示
-
初始数组:
["剑", "盾牌"] -
执行
Add添加“药水”后,数组变为:["剑", "盾牌", "药水"] -
再次执行
Add添加“药水”,数组变为:["剑", "盾牌", "药水", "药水"](允许重复)
-
2. 使用 Add Unique 节点
-
目标:只有背包里没有“药水”时,才将其加入。
-
步骤:
-
放置节点:搜索并添加
Add Unique节点。 -
连接节点:连接方式与
Add节点完全相同。
-
-
结果演示
-
初始数组:
["剑", "盾牌"] -
执行
Add Unique添加“药水”,数组变为:["剑", "盾牌", "药水"](添加成功) -
再次执行
Add Unique添加“药水”,数组保持不变:["剑", "盾牌", "药水"](添加失败)
-
💡 返回值与错误处理
Add Unique 节点有一个 Return Value (整数) 输出引脚,返回新元素在数组中的索引。如果添加失败(元素已存在),则返回 -1。
你可以利用这个返回值进行逻辑分支:
-
将
Add Unique节点的Return Value连接到Branch(分支) 节点的条件输入。 -
由于
-1在布尔逻辑中为False,其他值为True。-
连接
Add Unique的执行输出到Branch。 -
如果返回
-1(False),执行False分支,表示添加失败。 -
否则,执行
True分支,表示添加成功。
-
⚠️ 性能提示
-
Add节点:执行效率高,因为它不进行任何检查,直接添加。 -
Add Unique节点:执行前会遍历整个数组以检查重复。因此,当数组非常大时,频繁使用Add Unique可能带来性能开销。如果对性能有极致要求且能保证数据不重复,优先使用Add。
🤔 常见问题
-
Add Unique为什么总是添加失败?
检查要添加的元素的数据类型是否与数组定义的类型完全一致。例如,字符串的大小写或空格不同,会被视为不同元素。 -
Add和Add Unique可以用于结构体(Struct)吗?
可以。Add Unique会比较结构体的所有成员变量是否完全相同。 -
如何一次性添加多个元素?
使用Append节点,它可以将一个数组的所有元素添加到另一个数组的末尾。
感谢您的来访,获取更多精彩文章请收藏本站。







暂无评论内容