傅老师的unity黑魂复刻学习日记(八)

内容:新增跳跃动画

我们把ybot文件中extra的jump拖到我们的blendtree当中

在Parameter中增加一个新trigger,并改名为jump

我们把Ground和jump连起来并把Ground—>jump的exit time消钩 

Has Exit Time:这个意思是A在什么时候过渡到B,即A在这个时刻发生过渡的动作,你可以把它理解为一个特殊的过渡条件,类似time=exit time一样,如果有设置过渡条件,那么就是同时满足这两个条件时才发生过渡,也就是如果在exit time之前已经满足了你的条件,那么在exit time这个时刻发生过渡;否则,只能等到动画重新播放一遍,再次到达exit time的时候,才会发生过渡。如果你希望满足你的条件时候立马发生过渡,那么最好不要勾选这个选项。

我们希望按下跳跃的瞬间起跳,所以我们把它消钩。再加个jump的条件

按下trigger,我们的尼娅就跳起来了!

我们把按下keyB可以跳跃的功能加进去

可惜我们跳跃没有高度,而且跳跃键按两次会自动跳两次

我们接着修复这个bug,我们在blend tree的Ground里面加一个behavior


我们在behavior中设定两个数组,这两个数组挂载这信号的名字,比如jump和foward,然后在OnStateEnter和OnStateExit模块里面foreach所有的信号然后重置该信号


ok,我们接着完成跳跃高度的设置以及解决跳跃状态下可以随意移动的bug

解决移动的bug,我们的思路就是在jump中增加一个behavior宣布模型是在jump这个状态,然后在actorhandle中拦截这个信号


发出信号,信号名字就设为OnJumpEnter ;同样制作信号OnJunpExit


在playerhandle中接受信号并锁死移动

但是同时跳跃的时候会失去速度,我们继续修改


我们设置一个布尔值,只有lockplanar为false我们才更新速度,也就是说我们按下跳跃就锁死速度


呼,大功告成。我们最后再加上跳跃冲量


我们在进入跳跃状态时给刚体y轴一个冲量,使她跳起,跳跃部分就完美结束了。




猜你喜欢

转载自blog.csdn.net/qq_31728519/article/details/81056776