一:设置映射
项目设置->碰撞->Trace Channels,添加检测通道,命名为WallJump。
在场景中放置物体,细节栏搜索碰撞,选择自定义,并且将WallJump检测通道打开
二:设置变量
2.1打开角色蓝图
添加变量
(墙壁检测距离)(是否处于蹬墙状态?)(蹬墙跳的力)
三:逻辑设置
3.1 使用节点event tick,检查角色是否处于下落状态
3.2当角色处于下落状态时,添加一个射线检测,添加节点line trace by channel
先获取角色的当前位置和方向向量
将角色的方向向量和变量wallcheckdisance相乘,再合角色的世界位置相加,并将结果连接到“end”
将角色的世界位置连接到“start”,这样,当角色将获得射线检测
3.3 将射线检测的输出端和boolean连接至分支节点
3.3.1 (判断角色的状态“walljump?”为ture)
当输出为真时,设置变量walljump? 为真(说明角色现在正在墙上),并且使用节点set velecity设置角色角色的速度
使用节点vinterp to constant 和节点 get world delta seconds
分别来设置角色在墙上的速度和获取当前过去了多少秒
输入端口interp speed 用来限制角色在墙上的摩擦力(该值越大,角色在墙上的滑行时间越短)
4 设置跳跃
4.1 用节点 launch character来设置角色在墙上进行跳跃时的弹射速度
4.2 使用节点get actor rotation来设置 角色在跳跃时的旋转=玩家鼠标的旋转
5 整个逻辑图
5.1
5.2