实现开关门(UE4)

一,创建项目

        首先打开UE虚幻引擎,创建新工程,第三人称游戏类,选择具有初学者内容包,创建项目。

 二,新建门的蓝图

        右击文件管理器黑色部分,创建蓝图类,选择Actor类,重命名文件(Door_BP),双击打开。打开之后在右上角添加组件,添加两个静态网格体,和一个碰撞盒子(Boxcollision),给两个静态网格体附上材质,并重命名,拖动他们到合适的位置,注意要将门和Box放在门框的层级里面,因为在开门时,门框是不动的,并Box检测的范围也是不会随着们的移动而移动的。

 三,蓝图编辑

        在Box组件里面添加两个事件,组件重叠开始和结束,用于检测此时小白人是否处在门的前面;当组件开始重叠时,我们需要开启玩家的输入权,让玩家能够输入以便开启门,所以,在组件结束碰撞后,我们就要关闭输入;然后我们需要一个Gate节点(这个节点和它的意思是一样的,像一个大门一样,当我们触发open时,说明我们获取到了可以进门的权限,反之close触发时,则我们没有该权限,Enter就是我们获取进门的权限后,执行Enter,就可以继续向前执行,反之则不能),当我们玩家控制的小白人触碰到了Box,我们连接到open,反之连接到close,然后添加键盘F的输入,连接到Enter,然后用到一个节点FlipFlop,这个节点是当我们第一次进入是走A,第二次走B,第三次又走A,跟我们开门是一个逻辑,第一次开门,第二次按F就是关门了,之后我们添加一个时间轴,添加两个节点,一个(0,0),一个(t,1);t是开门所用的时间,最后要将你的最后一个节点和你时间轴的总时长设置成一样的,然后添加一个lerp插值,意思是从A,到B,使用时间轴作为变化轨迹,然后获取门的节点,设置当前门的相对旋转,一定是相对,讲Z轴连接到lerp,这样我们就实现了一个简单的开关门。

我们将做好的门的蓝图类放置到场景中(相当于实例化了一个对象),这样我们就可以实现开关门的一个功能。