跳跃动画的添加
1.创建animation,不同的阶段完成不同的创建,依此添加
2.在animator中创建混合树
**混合树**允许通过不同程度合并多个动画来使动画平滑混合。每个运动对最终效果的影响由一个_混合参数_控制,该参数只是与 Animator Controller 相关联的数字动画参数之一。为了使混合后的运动合理,要混合的运动必须具有相似的性质和时机。混合树是动画状态机中的一种特殊状态类型。
3.双击进入blend tree
Inspector__ 中的第一个选项是 Blend Type。此下拉选单用于选择不同混合类型之一;这些类型可以根据一个或两个参数进行混合。1D 混合根据单个参数来混合子运动。
由于jump只对一个混合参数,y方向的速度变化进行了判断,选择1D
添加混合参数velocityY对纵向速度进行检测,可在play中看到y方向速度时一个14->0->-14左右的值的变化
对应不同的阶段 估摸着完成jump前四步阈值的添加
4.添加代码链接,把人物的y速度加入到混合参数中
public void SetAnimation()
{
//anim.SetFloat("velocityX", Mathf.Abs(rb.velocity.x));
anim.SetFloat("velocityY", rb.velocity.y);
//anim.SetFloat("crouch", cr.isCrouch);
}
5.创建跳跃动画的切换条件
public void SetAnimation()
{
//anim.SetFloat("velocityX", Mathf.Abs(rb.velocity.x));
//anim.SetFloat("velocityY", rb.velocity.y);
anim.SetBool("isGround", pc.isGround);
//anim.SetFloat("crouch", cr.isCrouch);
}
判定条件为是否离地,添加布尔参数,取消transition to self框,防止进入状态无法返回
ps.设置在任何状态下的转变,为可以在任何情况下只要挨着地面就能突然跳起来(攻击等其他情况可以被打断)
整个跳跃是一个离开地面->跳跃模式->到了地面->跳跃5(落地)动作->进入idle状态
5.解决落地直接跑步不下蹲缓冲做动作5如果x方向速度大于0.1,退出动作