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


    Ⅰ、数组于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”。

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

  • 相关阅读:
    java实现排列序数
    java实现猜算式
    java实现猜算式
    java实现猜算式
    java实现猜算式
    java实现猜算式
    java实现算年龄
    Delphi 项目失败的总结
    使用EurekaLog时遇到的问题
    KmdKit4D 0.01正式版发布了(0.02版已放出)(Delphi做驱动)
  • 原文地址:https://www.cnblogs.com/MilkoSilver/p/13252086.html
Copyright © 2020-2023  润新知