跳跃动画的添加

1.创建animation,不同的阶段完成不同的创建,依此添加

unity 3d 移动跳跃_ci


2.在animator中创建混合树

**混合树**允许通过不同程度合并多个动画来使动画平滑混合。每个运动对最终效果的影响由一个_混合参数_控制,该参数只是与 Animator Controller 相关联的数字动画参数之一。为了使混合后的运动合理,要混合的运动必须具有相似的性质和时机。混合树是动画状态机中的一种特殊状态类型。

unity 3d 移动跳跃_unity_02


3.双击进入blend tree

Inspector__ 中的第一个选项是 Blend Type。此下拉选单用于选择不同混合类型之一;这些类型可以根据一个或两个参数进行混合。1D 混合根据单个参数来混合子运动。

由于jump只对一个混合参数,y方向的速度变化进行了判断,选择1D

添加混合参数velocityY对纵向速度进行检测,可在play中看到y方向速度时一个14->0->-14左右的值的变化

对应不同的阶段 估摸着完成jump前四步阈值的添加

unity 3d 移动跳跃_unity 3d 移动跳跃_03

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.设置在任何状态下的转变,为可以在任何情况下只要挨着地面就能突然跳起来(攻击等其他情况可以被打断)

unity 3d 移动跳跃_Blend_04


整个跳跃是一个离开地面->跳跃模式->到了地面->跳跃5(落地)动作->进入idle状态

unity 3d 移动跳跃_ci_05

unity 3d 移动跳跃_unity 3d 移动跳跃_06


5.解决落地直接跑步不下蹲缓冲做动作5如果x方向速度大于0.1,退出动作

unity 3d 移动跳跃_ci_07