【虚幻】按键开门蓝图笔记

【虚幻引擎】UE4自动门和手动开门蓝图教学
沿用之前自动门的开门逻辑。
在这里插入图片描述
在这里插入图片描述

按指定键位,开门。
原理是:玩家按F建——玩家碰撞检测——若玩家与门的盒型碰撞重叠——开门
这里面涉及到了两个技术点:

  • 蓝图通信——玩家蓝图检测到门,告诉门蓝图执行开门事件。
  • 碰撞检测——按键时,对玩家碰撞的物体进行遍历,若有门,则执行通信。

一、建立蓝图通信

蓝图接口——蓝图通信的桥梁
在这里插入图片描述

右键>蓝图>蓝图接口。
在这里插入图片描述

在蓝图接口内新建一个函数If_Open。
这个时候蓝图接口就设置好了,可以关闭蓝图接口窗口了。
在这里插入图片描述

在门蓝图内打开接口:类设置——接口>添加刚才的函数If_Open

二、门逻辑

1.按键开门逻辑

打开门蓝图。
添加IF open事件,与 开门事件相连。
在这里插入图片描述

现在的效果是玩家按F开门,进入后门自动关闭。
如果全部都要用按键控制关闭,就要记录门的状态,根据状态决定开关。

2.玩家蓝图设置

打开玩家蓝图。
在这里插入图片描述

右键添加F事件
在这里插入图片描述

F事件直接连接IF_open接口,此时直接编译报错,必须要给一个目标。

3.玩家碰撞检测

利用玩家胶囊体进行碰撞检测,对碰撞的Actor进行遍历,若有门,则直接执行开门事件。
在这里插入图片描述

点击胶囊体组件——添加组件开始重叠事件、组件结束重叠事件
添加一个数组变量存储碰撞Actor信息:

  • 重叠开始时——增加信息
  • 重叠结束时——删除信息

在这里插入图片描述

拖拽组件开始重叠时的“other Actor”引脚提升为变量。

在这里插入图片描述
在这里插入图片描述

把该变量类型改为数组,改名,删除——按住ctrl从左边变量拖拽到蓝图中,新建这个变量键。
在这里插入图片描述

拖拽可以开门的Actor键并新建ADD“添加到数组 ”函数——组件开始重叠时的Other Actor引脚、执行引脚与添加到数组函数相连。
若玩家与此物体碰撞,则把该Actor添加到可以开门的Actor数组中。
在这里插入图片描述

拖拽可以开门的Actor键并新建Remove“从数组中移除”函数——组件结束重叠时的Other Actor引脚、执行引脚与添加到数组函数相连。
若玩家不与此物体碰撞,则把该Actor从可以开门的Actor数组中移除。
在这里插入图片描述

碰撞检测完整蓝图。

4.碰撞检测信息遍历

此时我们已经拥有了碰撞物体的信息,接下来要从里面挑选出门。
在这里插入图片描述

新建一个可以开门的Actor键,拖拽并新建For Each Loop遍历函数——F事件与遍历函数执行引脚相连——遍历函数与 If Open相连
完整逻辑是:按F——对碰撞Actor数组遍历——有门——门蓝图执行开门事件。
为什么使用数组,应该是玩家可能同时遇到多个Actor,或者在没离开上一个Actor时又碰到新的Actor。

猜你喜欢

转载自blog.csdn.net/Zhanganzhen/article/details/124637517