当角色走路的时候玩家键入跳跃角色会向前翻滚,当角色跑步状态时玩家键入跳跃角色会向前跳再接翻滚:
修改速度判断的阈值达到落地就翻滚
if (rigid.velocity.magnitude >1.0f)//当速度大于1时,找到并勾选roll
{
anim.SetTrigger("roll");
}
将ground的Clean Enter 增加两个参数:jump,roll(清掉两个trigger)
再从ground拉一条转态到roll,消勾exittime,给一个jump和一个forward小于1.1时(冲量小于1.1时 按跳跃键就是翻滚)
然后修改ground的判断顺序:fall 》roll 》jump
再从jump拉一条转态到roll,消勾exittime,给一个isground true,和forward小于1.1,再修改jump的判断顺序:roll》ground》fall
最后在roll上挂一个OnRollEnter脚本:
给一个翻滚冲量:
public float rollVelocity = 1.0f;//翻滚冲量
增加播放翻滚动画:
public void OnRollEnter() //翻滚动画
{
thrustVec = new Vector3(0, rollVelocity, 0);//修改thrustVec
pi.inputEnabled = false; //跳起来之后不能移动
lockPlanar = true;
}
在进行速度和位移的调试就可以达到走路翻滚跑步跳跃的效果。