[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后面的代码(跳出循环。)

  

 

posted on 2018-12-20 21:03  一粒沙  阅读(2006)  评论(0编辑  收藏  举报