角色上下车功能
上车
将 角色蓝图类 和 载具蓝图类 导入目录并重命名为 Car_BP 和 Player_BP

进入 Car_BP 蓝图类 事件图表 中,新建 Up_Car 自定义事件

进入 Player_BP 蓝图类 事件图表 中,新建 Car_BP 类型变量,并且新建 键盘 F 监听节点 、Is Valid 节点,并连接

从 获取变量 Car 拖线到空白处添加 Up_Car 自定义节点,并连接

返回 Car_BP ,并在 事件图表 中添加 事件开始重叠 、 事件结束重叠 事件,并将其类型均转为 Player_BP

将 事件开始重叠 连接到 设置Car 节点,将值设为对自身的引用 self 节点,并连接到 As Player BP 输出;将 事件结束重叠 连接到 设置Car 节点,不连接设置值的任何节点,并连接到 As Player BP 输出

添加 Gate 节点,并将 事件开始重叠 连接到 Open ,将 事件结束重叠 连接到 Close ,将 Up_Car 连接到 Enter

添加 控制 和 获取玩家控制器 、对自身的引用 节点,并连接

编译后运行


回到 Car_BP 视图节点,添加 Sphere 组件,并调整至适合的位置


选中 Sphere 组件,并在 细节 面板中将 碰撞预设 更改为 NoCollision

在 事件图表 中,添加 读取 Sphere变量的值 节点,并连接到 获取世界变换

添加 设置Actor变换 节点并连接

在 Up_Car 自定义事件输入中添加 Player_BP 类输入

返回 Player_BP 蓝图类 事件图表 , 添加 self(对自身的引用) 节点,并连接到i Up_Car 的 Player Actor 输入

在 Car_BP 的 Up_Car 中将 Player_Actor 提升为变量

读取 Player Actor 的值并连接到 设置Actor变换 的目标

读取 Player Actor 的值添加 设置Actor启用碰撞 节点,并连接

读取添加的空白组件 Up 并拖线到空白处添加 将Actor添加到组件 节点,将 Player Actor 连接到 目标 引脚

编译后运行

下车
在 Car_BP 事件图表中,新建 键盘 f 监听

读取 Player Actor 的值,并添加连接到Is Valid` 节点

读取 Player Actor 的值,并添加连接到 脱离Actor 节点

读取 Player Actor 的值,并连接到 设置 Actor 启用碰撞 节点

回到 Car_BP 的视图界面,添加 Sphere 组件,将其移动至旁,并重命名为 Down


读取 Down 的值,并添加连接到 获取世界变换 节点

读取 Player Actor 的值,并添加连接到 设置 Actor 变换 ,将 获取世界变换 的输出值中 位置 和 旋转Z轴 信息传递

读取 Player Actor 的值,添加 获取玩家控制器 节点,并添加连接到 使用混合设置视图目标 节点

添加 延迟 和 控制 节点,并将读取的 Player Actor 和 获取玩家控制器 的值连接到 控制 节点

编译后运行


提示
-
因为上车后,控制权已经移交给
Car_BP,所以下车时的监听键盘 F需要写在Car_BP中。而上车则是因为控制权还在Player_BP中,所以需要将监听键盘 F写在Player_BP中 -
将Actor附加到组件和脱离Actor节点均需要设置为保持场景,否则会出现人物模型消失,尺寸不对,方向错误等情况