Unreal Engine 4 蓝图完全学习教程(八)—— 循环(2)ForEachLoop

荒凉一梦 提交于 2020-08-08 05:07:56

Ⅰ、数组于ForEachLoop

数组是一种特别的值,可对多个值进行集中管理。处理保管于数组中的所有数据时会用到循环,如利用敌人角色的数组使他们同时动作。

而处理数组中的所有元素,可以使用“ForEachLoop”循环,它是专门处理数组的ForLoop循环。传递数组后,可按顺序从数组中取出值并进行处理。

首先准备一个数组,点击左侧“我的蓝图”中的“变量”处的“+”号,新建一个名为“data”的变量:

 

 

 接着在右侧“细节”栏中修改参数信息(将变量数据类型修改成整数,并将变量变更为数组):

 

 

 然后点击编译,编译完成后继续在细节面板中“默认值”处单击“+”号为数组创建初始值:

 

 

Ⅱ、ForEachLoop节点 

右击图表,输入“foreach”,选择“工具”内的“数组”项目中的“ForEachLoop”选项创建“ForEachLoop”节点:

 

 

 ForEachLoop节点:

 

 

ForEachLoop节点是用于处理数组的专用节点,其输入输出项也是结合数组由ForLoop演变而来的:

ForEachLoop节点的输入项:

  • Exec:连接执行处理的顺序。
  • Array:连接要处理的数组。

ForEachLoop节点的输出项:

  • Loop Body:将循环处理的内容连接至此以创建处理。
  • Array Element:在ForEachLoop中将以顺序从数组中取出值,所取出的值从此处获得。
  • Array Index:可获得取出值的Index编号。
  • Completed:数组处理全部完成后,用于连接至后续的处理。

接下来将数组节点拖动到图表中(选择获取data),并将“Data”连接至“ForEachLoop”:

Ⅲ、创建以ForEachLoop进行的循环处理

使用ForEachLoop,首先计算data数组的总数,然后将所得的值除以data值的数量得到平均值。

首先,创建一个名为“num”的变量用来记录总数,初值为0:

 

 

 接着将该变量拖动到图表中,选择设置num。然后右键图表,输入“+”,选择“integer+integer”选项。再将num变量拖动到图表中,选择获取num:

然后进行节点的连接:

①将“Num”节点连接至“+”节点的任意一个输入项;

②将“ForEachLoop”的“Array Element”连接至“+”节点的另一个输入项;

③将“+”节点的输出项连接至“设置”节点的“Num”;

④将“Begin Play”的exec输出项连接至“ForEachLoop”的“Exec”;

⑤将“ForEachLoop”的“Loop Body”连接至“设置”的exec输入项;

⑥将“ForEachLoop”的“Completed”连接至“Print String”的exec输入项。

Ⅳ、准备Print String的内容

最后需要将平均值的结果使用Print String节点进行输出。总数已经从变量num中获得,接下来是求平均值并通过Print String显示。

首先,复制一个获得num的节点。然后右击图表,输入“/”,选择“integer/integer”选项。再次右击图表,输入“length”并选择“工具”内的“数组”中的“Length”选项:

然后对节点进行连接:

①将“Data”连接至“LENGTH”;

②将“Num”连接至“÷”上方的输入项;

③将“LENGTH”连接至“÷”下方的输入项;

④将“÷”连接至“Print String”的“In String”。

 

 

最后编译运行,即可得到数组中五个整数的平均值输出:

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!