创建一个elevator蓝图,创建一个cubemesh ,添加碰撞体盒子boxcollision,
创建函数(gravity fun)重力函数来模拟角色上电梯时电梯有个缓冲动作——上下运动。
gravity fun:先获取elevator的高度进行判断,是否等于最高高度:
true:电梯在最高高度,当角色进入电梯,电梯向下运动80米用lerp过度这个下降和上升的过程,
lerp的alpha就是这时过度曲线
false:电梯不在最高高度,及在最初是的位置,角色跳入到电梯电梯触发机制,,该过程同样得用lerp函数来过度。
lerp函数的alph值需在外部输入所以给gravityfun赋予input上alpha变量。
在电梯蓝图上给boxcollision添加on component begin overlap(box)和om component end overlap(box)事件,
当物体与电梯发生碰撞时执行on component begin overlap,先给alpha赋予变量曲线,用timeline函数编辑合理曲线,当执行了gravity fun函数后也就是alpha曲线结束后,角色就可以按1键使电梯向上,这时用到enable input链接gate(门) 按 1 enter gate 后 ,也就是说当角色刚上到电梯时gravity结束后可以open gate,当角色离开电梯时执行on component end overlap 使gate 变到close。
但角色按1时电梯上升,电梯上升用到set relativelocation 设置z(高度的变化)而高度的变化用到line tine时间线和lerp过度实现上下。