Unreal Engine 4 蓝图完全学习教程(六)—— 分支与开关
Ⅰ、控制的基础——“转移”与“循环”
- 转移:通过确认程序状态,并据此执行不同处理的一种功能。
- 循环:多次循环执行预先设置好的处理。
Ⅱ、分支(Branch)
分支就是通过检查某个值,然后根据结果来决定该执行两个处理中的哪一个,即所谓的“二选一”。
程序中有一种值,用于表示“是两个状态中的哪一个”,即“真假值”,在蓝图中为“布尔型”值。分支就是用于处理真假值的一项功能,通过检查真假值的值并根据值的状态来决定两者中的哪一个处理。
Ⅲ、分支节点
首先右击图表,在菜单中输入分支,“工具”内的“流程控制”项就显示出了“分支”选项:
分支节点:
创建的分支节点中有多个输入和输出项:
- Condition:输入项目。在分支中用于连接要确认的值(真假值),旁边的复选框在未连接时默认为勾选状态,通过是否勾选复选框就可以进行分支。
- True/False:输出项目中预备有“真”“假”这两个项目,用于连接分支处理流程。“真”与“假”为真假值的值。真假值用于表示值的真假,Condition的复选框为勾选状态时,执行连接到“真”的处理,没有勾选时,执行连接到“假”的处理。
接着将“Begin Play”的exec输出项连接到“分支”的exec输入项,然后将“分支”的“真”连接到“Print String”的exec输入项:
然后从工具栏单击“播放”图标运行程序。当分支复选框勾选时,Print String显示出文本;没有勾选时,不显示文本。
Ⅳ、值的比较
在刚才的程序中添加对值进行比较的处理。右击图表,在出现的菜单中键入“=”,从检索出的项目中选择位于“数学”内的“整型”项目中的“Equal(integer)”选项:
所创建的节点称为Equal节点,是表示等号(=)的节点。该节点可检查输入的两个值是否相等。蓝图中依据对象值的种类预备有多个Equal节点。本次使用的Equal(integer)用于比较整数值。
Equal节点有两个输入项和一个输出项:
- 两个输入项:用于连接两个比较对象值。
- 输出项:用于将结果以真假值的形式输出。值为真表示两个值相等,为假不相等。
接着在Equal节点的两个输入项中填上相同的数字,然后将Equal节点连接到分支:
接下来点击运行,程序通过“Equal”来检查两个值,二者相同的话将执行Print String:
Ⅴ、能完成很多转移的开关
分支是使用真假值所做的转移,也就是“2选1”转移。而如果想“3选1”呢?
这时就需要用到“开关(Switch)”转移了。开关的转移数可以自行添加,只要你想,可以添加无数个。
Ⅶ、“开启字符串(Switch On String)”节点
接下来,将尝试使用字符串开关来制作一个“猜拳程序”。
首先,右击图表,在菜单栏中键入“switch on”,并选择位于“工具”内的“流程控制(切换)”项中的“开启字符串”选项:
所创建的“开启字符串”节点:
该节点英文名称为“Switch On Switch”,意思是“以字符串替换”。也就是用字符串的值来替换。
开启字符串节点中有几个输入输出项:
- Selection:用于连接检查对象值。可在旁边的文本框内直接填写文本进行设置。运行时,运行该值和右侧的项。
- Default:找不到与Selection相同的项时运行。
- “添加功能”链接:单击来添加转移输出项。默认状态为没有转移。
然后点击“添加引脚”选项添加3个选项,然后在右侧的细节面板中输入三种情况的名称:
接着,单击“我的蓝图”中“变量”处的“+”,创建一个名为“猜拳”的变量:
并在右侧的细节面板中将变量类型设置为“字符串”,然后单击工具栏中的“编译”进行编译。编译后即可在“默认值”处填写“剪刀”、“石头”、“布”中的任意一个:
然后就可以将该“猜拳”节点拖拽入蓝图中了,选择“获得”选项。再将“猜拳”节点连接到“开启字符串”节点,接着添加3个Print String节点,分别键入“剪刀”、“石头”、“布”,并连接起来:
但是,当遇到与任何值都不匹配的情况时,就利用“Default”来创建相关的处理。
首先,将“猜拳”变量拖拽到图表中,并选择“设置”选项,并设置为“剪刀”:
改写原获得节点的默认值,使其不为剪刀、石头布中的任何一个,然后做如下连线:
最终编译运行,因为指定的文本不为三者中的任意一个时,则均会输出“剪刀”: