[UE4]控制流
虽然官方文档说复杂的蓝图循环是会跨域多帧运行,但实际上测试下来,如果在循环体进行大量复杂的运算,不足以在一帧内完成时,游戏就会在当前帧卡住,直到循环结束为止。
一、Switch
Switch可以在所有枚举类型(包括自定义枚举)上使用。
数字可以Add pin。
二、Branch
三、Delay
四、Do N:做N次,和DoOnce一样可以重置。Counter从1开始计数,重置后重新变成1。做完N次后就不再做,除非重置。
五、DoOnce:只做一次,直到被Reset。所下图所示:第一次按1,屏幕会打印“Hello”字符串,再按一次1不会打印“Hello”(被DoOnce阻挡了),按一下2重置DoOnce,再按一下1,则又会打印“Hello”了。
可以设置DoOnce初始是是不是是关闭状态(如下图所示:如果Start Closed勾选,则初始时按1不会被执行,需要先按一下2)
六、DoOnce MultiInput,多输入,但只做一次。
DoOnce MultiInput支持多输入,上图所示:按了A键会打印字符“A”,再按B键,不会打印,除非按R键重置。
任何一个输入执行了,其他输入则不会再被执行,除非重置。
七、FlipFlop:翻转,一个输入,2个交替输出。如果执行的是A输出,则输出参数“Is A”为True,否则为False
八、For Loop。当条件“First Index <= Index <= Last Index” 条件成立时,循环执行Loop Body后面的代码(循环体),否则就执行Completed后面的代码(跳出循环体)。
九、ForLoopWithBreak ,跟For Loop一样,但是多了Break跳出循环体的方法。
十、Gate,门。只有当门是Open状态才会执行Exit后面的代码。Open开门;Close关门;Toggle开门和关门交替
十一、MultiGate,一个入口门,轮流交替多个出口门。Loop:所有出口门循环交替。Is Random:随机挑选一个门作为出口。Loop和Is Random都勾选,会出现一个门连续多次作为出口门。
十二、Retriggerable Delay
十三、Sequence
十四、Select
十五、使用Select代替Switch的好处
如图所示:Select后执行的函数相同,只是参数不一样,就可以使用Select代替Switch。
可以看到Select代替Switch可以大大简化蓝图复杂度。
十六、WhileLoop,条件循环。当Condition为true时,循环执行Loop Body后面的代码(循环体)。当Condition为false时,执行Complete后面的代码(跳出循环。)