UE5 - 流程控制节点功能介绍与使用详解3(ForLoop、ForEachLoop、WhileLoop、嵌套循环)
作者:hangge | 2025-08-19 08:45
在虚幻引擎 5 的蓝图可视化脚本系统中,流程控制节点是构建复杂逻辑的基石。它们决定了代码执行的顺序、条件和重复性。我在之前的文章中介绍了其中一部分节点地功能和使用样例(文章1、文章2),本文接着介绍剩余部分。






十一、ForLoop & ForLoopWithBreak(循环)
1,功能说明
用于执行固定次数的循环。ForLoopWithBreak 额外提供 Break 输入,允许在循环体内部提前终止循环。
2,引脚说明
(1)输入:
- First Index (整数):循环起始索引 (通常为 0)。
- Last Index (整数):循环结束索引(包含)。循环次数 = (Last Index - First Index) + 1。
- Break (输入执行)(ForLoopWithBreak 特有):在循环体内部调用此引脚可立即跳出循环,直接执行 Completed。
(2)输出:
- Loop Body (执行):每次循环执行的主体逻辑。提供 Index (整数) 输出当前循环索引。
- Completed (执行):当所有循环都执行完毕后执行。
3,应用场景
- 遍历数组元素(结合 Get (a copy) 和索引)。
- 在场景中生成一排物体。
- 批量初始化多个 Actor。
- 执行重复操作多次(如连续攻击)。
- 搜索数组,找到目标后用 Break 跳出 (ForLoopWithBreak)。
4,使用样例
(1)下面样例运行后在“For Loop”节点中进行了 1~5 的循环,并同时将当前循环到的 Index 打印出来。循环结束时打印“结束”文字。

(2)下面是一个“For Loop With Break”样例,当 Index>=3 时则触发 break 中断,跳出循环。最终运行后打印的信息为:1、2、3、结束。

十二、ForEachLoop & ForEachLoopWithBreak(数组遍历)
1,功能说明
专门用于遍历数组中的每个元素。ForEachLoop 会遍历数组的所有元素;ForEachLoopWithBreak 额外提供 Break 输入,允许在循环体内部提前终止遍历。
2,引脚说明
(1)输入:
- Array (通配符数组):需要遍历的数组。类型由连接的数组决定。
- Break (输入执行)(ForEachLoopWithBreak 专有):在循环体内部调用此引脚可立即跳出循环,直接执行 Completed。
(2)输出:
- Loop Body (执行):对数组中的每个元素执行一次的主体逻辑。提供:
- Array Element (通配符):当前遍历到的数组元素。
- Array Index (整数):当前元素在数组中的索引(从 0 开始)。
- Completed (执行):当所有元素都遍历完毕后执行。
3,应用场景
- 批量修改数组元素属性。
- 在数组中查找符合条件的元素(找到后用 Break 跳出)。
- 根据数组内容动态生成 UI 元素(如背包物品列表)。
- 计算数组元素总和、最大值等。
- 初始化或销毁数组中的所有 Actor。
4,使用样例
(1)首先我们定义一个整数数组类型的变量 Datas,数组元素为 1,3,5,7

(2)下面样例使用“For Each Loop”节点遍历这个数组元素然后打印出来。

(3)下面是一个“For Each Loop With Break”样例,当 Index>=2 时则触发 break 中断,跳出循环。最终运行后打印的信息为:1、3、5。

十三、WhileLoop (While 循环 - 慎用!)
1,功能说明
(1)只要给定的布尔条件为真 (True),就重复执行循环体内的逻辑。
(2)当循环量很大时很容器造成无限循环而导致游戏崩溃,使用时务必注意循环量。
- 极易造成无限循环和引擎崩溃! 如果 Condition 永远不为 False,或者 Loop Body 执行太快来不及更新 Condition 的状态,循环将永不停止,阻塞游戏线程(主线程),导致编辑器或游戏无响应("Not Responding")。
- 虚幻引擎的蓝图执行是单线程的(游戏线程)。一个无限运行的 WhileLoop 会阻止其他所有蓝图逻辑、渲染、输入处理等。
2,引脚说明
(1)输入:
- Condition (布尔):循环继续执行的条件(每次循环迭代前检查)。
(2)输出:
- Loop Body (执行):每次条件为 True 时执行的主体逻辑。
- Completed (执行):当条件变为 False 后执行。
3,应用场景
- 理论上可用于需要未知次数的循环,直到某个条件满足。
4,使用样例
(1)首先我们定义两个整数类型的变量 A 和 B,它们初始值分别为 1 和 10。

(2)下面样例使用 while 巡检循环,A 初始值为 1,B 初始值为 10,每次循环前检查 A<B 是否成立,循环时打印出 A 值并将 A+1。最后运行时可以看到打印出 1~9 数字。

附:实现嵌套循环
(1)嵌套循环是指一个循环套着另一个循环。这种循环的用处很多,如生成方阵、摆阵型和做计算等。例如下面样例总共循环执行 3*3=9 遍,使用格式化文本固定 X:Y 的格式,输出方阵的坐标。

(2)运行后打印出的信息如下:

全部评论(0)