问题描述
在开发过程中,可能会遇到需要一次性加载多个关卡流,每个关卡流里包含一部分场景中的建筑。
蓝图调用方式
这里我们先做假设,世界中有四个关卡流,每个关卡流中都有栋10楼的建筑,关卡中模型的加载顺序是从低到高。
为了解决该问题,我最开始选择下图方式进行加载,直接一个执行流到底,并且此时还不理解LoadStreamLevel中“Should Block On Load"参数的含义,就没有勾选。
此时运行会发现,世界中的关卡流是逐步加载,从关卡流1开始,从1楼加载到10楼,就是逐步显示模型。有一个加载的”动画“。
但我不想要这个加载动画,我于是试着勾选了“Should Block On Load”。
此时运行发现,每个关卡流的加载不会按照里面的模型进行逐步加载了,没有了逐步加载的这个动画。但是还是存在“动画”,即4个关卡的模型是依次出现,原因显而易见Load Level Stream是一个Lantent函数,关卡流2的加载需要在关卡流1的加载Complete后才进行。
此时,解决有两个解决方案
方案一:写一个事件,事件内容是加载关卡流
运行,即可发现,所有关卡流一同加载完毕。原因是事件相当于触发器,并不会等待你执行完毕再执行后面的内容。
方案二:利用Sequence节点遇到Lantent函数就进入下一个执行流的特性。
此时也能达到近乎于“同时”加载的效果。因为再Sequnce中,遇到带有延迟特性的函数,就回直接进入下一个执行流。