【蓝图】p46角色上下车功能

p46角色上下车功能

添加一个车的蓝图(可以添加官方的载具游戏的车),在内容浏览器-》添加-》功能包-》载具类游戏
请添加图片描述
在VehicleBP-》Sedan-》Sedan,拖拽到视口中
请添加图片描述
先给车添加一个碰撞盒子,使玩家靠近可以交互开车,打开Sedan蓝图
在Sedan蓝图类中添加新事件图表,重命名为上下车

上车(控制权切换)

添加变量VehicleRef(车辆裁判),变量类型更改为汽车的蓝图类Sedan,对象引用
请添加图片描述
创建蓝图
在玩家第三人称蓝图中创建键盘 F,拖出Vechile Ref,拖出引脚搜索‘?is valid’,从Vechile Ref急促拖出引脚搜索自定义事件“上车”
当角色靠近车,ThirdPersonCharacter蓝图的Vechile Ref会被赋值,如果赋值了按F走Is Valid ,如果没有赋值按F走Is Not Valid
请添加图片描述
创建组件开始重叠(Box)和组件结束重叠(Box),这是为了让角色在触碰到盒体后给ThirdPersonCharacter蓝图的Vechile Ref赋值
怎么使触发盒子通信ThirdPersonCharacter蓝图的Vechile Ref呢?
使用类型转换,并使用“设置Vechile Ref”,设置就需要给它一个数值,从“设置Vechile Ref”的Vechile Ref拉出引线搜索self(获得一个对自己的引用)
即在玩家和车重叠时按F就把自己赋给了ThirdPersonCharacter蓝图的Vechile Ref
如下连接蓝图
请添加图片描述
离开盒体碰撞区域时要取消给ThirdPersonCharacter蓝图的Vechile Ref的赋值,去掉self蓝图即可,什么都不给SET,它就变为空的了

创建Gate,获取玩家控制器,控制,如图连接
请添加图片描述
蓝图“控制”的对象为汽车,所以,从In Pawn拉出引线,搜索self(获得一个对自己的引用)
请添加图片描述
当角色靠近车,ThirdPersonCharacter蓝图的Vechile Ref会被赋值,之后再按F间就可以进行蓝图通讯,触发Sedan内的自定义事件上车,

如此,即可在角色靠近车使,按键盘F,进行控制权切换了
但是现在切换后人是没上车的
请添加图片描述

让角色和汽车一起移动

在组件搜索Sphere Collision(球体碰撞),在细节面板的形状更改球体半径为16,把它放在一个正确的位置上,在collision的碰撞预设改成NoCollision,添加Sphere Collision的目的是定一个位置
请添加图片描述
请添加图片描述

GetWorldTransform(获取场景变换)

在Sedan蓝图组件中拖拽Sphere到上下车图表中,拉出引脚搜索GetWorldTransform(获取场景变换)
请添加图片描述

break(拆分变换)

从GetWorldTransform(获取场景变换)的Return Value引脚拉出引线搜索break(拆分变换)
请添加图片描述
Location(位置)
Rotation(旋转)
Scale(缩放)
创建蓝图“设置Actor变换”
如图连接
请添加图片描述
但是现在蓝图“设置Actor变换”没有目标,拖拽住目标伸出引线,拉到自定义事件“上车”处,会显示一个添加引脚到节点,连接
请添加图片描述
如此会发现ThirdPersonCharacter蓝图的事件上车多了一个目标
请添加图片描述
从此新增的目标拖拽引线搜索myself(获得对此蓝图实例的引用),此操作可以使ThirdPersonCharacter蓝图类里的变量传到Sedan中
现在上车,车会旋转飞出去,因为卡了碰撞,人也有碰撞,车也有碰撞,两个碰撞相排斥
从事件上车的目标拉出引线搜索设置Actor启用碰撞,注意,不要勾选,如图连接
请添加图片描述
现在解决了碰撞相斥的问题,而且角色会瞬间到达上车位置,但是角色不会随着车进行移动

选中自定义事件上车的目标,拖出引线,选择提升为变量
如图连接
请添加图片描述

AttachActorToComponent(附加Actor到组件)

Socket Name(骨骼名字):当玩家如果带枪,此节点输入骨骼的名字,可以把枪贴到此骨骼上
Location Rule选择以什么为参考
Rotaion Rule选择以什么为参考
Scale Rule选择以什么为参考
保持相对:相对于父类,在此问题中相对于SphereUp,会造成角色不知道跑到哪了
保持场景:相对于世界坐标,在此问题中应使用此
对其到目标

将Sphere重命名为SphereUp,拉出SphereUp,拉出引线搜索attach to,可以看到两个附加Actor到组件,附加组件到组件,这两个目标不一样,一个是Actor,另一个是组件,选择AttachActorToComponent(附加Actor到组件)
请添加图片描述
将变量目标重命名为小白人
连接蓝图
请添加图片描述
如此把角色附加到了SphereUp上
附加到汽车上不好调整角色位置,不如先在车上定位一个点,把角色附加到此点上
AttachActorToComponent(附加Actor到组件)Location Rule、Rotaion Rule、Scale Rule选择以场景为参考,如此角色就会和车一起移动了
上车蓝图总览
请添加图片描述

下车

下车的蓝图创建思路正好和上车相反

在Sedan蓝图类内创建“键盘 F”,为什么在Sedan蓝图类创建?因为上车时已经切换了控制权,所以只会在切换了控制权的这个蓝图类里才能响应,所以“键盘 F”创建在Sedan蓝图类内

如图连接蓝图,此蓝图是为了规避bug风险
请添加图片描述
和AttachActorToComponent(附加Actor到组件)相对应的是DetachFromActor(从Actor分离),在Location Rule、Rotation Rule、Scale Rule选择保持场景
请添加图片描述
现在如果在开车的状态下,按下F键,角色会脱离汽车

放置一个下车位置
请添加图片描述
如图连接蓝图
请添加图片描述
注意不要直接连接设置Actor变换的Rotation,如果连接,下车时如果车是倾斜的,角色下车后也会是倾斜的,一定要分割结构体引脚,连接z轴
请添加图片描述
开启角色碰撞,注意,要打勾
请添加图片描述
使镜头有过渡
请添加图片描述
切换回控制权
将小白人的变量类型转换成pawn,不要忘记自定义事件上车的小白人引脚,也要改成pawn(这是之前的失误)
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值