Unity_混合树实现三种动画的混合_070

我们需要实现可以向左向前向右跑

混合树创建步骤:1.右击出现creat state -> from blend Tree
Unity_混合树实现三种动画的混合_070_第1张图片

Unity_混合树实现三种动画的混合_070_第2张图片
配置混合树
Unity_混合树实现三种动画的混合_070_第3张图片
Unity_混合树实现三种动画的混合_070_第4张图片

参考代码如下:

using UnityEngine;
using System.Collections;

public class AnimatorTest : MonoBehaviour {

    private Animator anim;
    private float horizontal;
    private float vertical;
    //旋转的速度
    public float rotateSpeed;
    //向前跑的速度
    public float speed;

    // Use this for initialization
    void Start () {
        anim = GetComponent();
    }

    // Update is called once per frame
    void Update () {
        //
        horizontal = Input.GetAxis("Horizontal");
        vertical = Input.GetAxis("Vertical");
        //W键或者上方向键按下的时候
        if (Input.GetKey(KeyCode.W)|| Input.GetKey(KeyCode.UpArrow))
        {
            //如果只按下W键或者上方向键按下的时候
            anim.SetBool("Run",true);
            transform.Translate(Vector3.forward * Time.deltaTime * speed);
            //如果按下W键或者上方向键按下的时候同事按下AD或者左右方向键的时候执行左跑或者右跑的动作
            if (vertical != 0)
            {
                anim.SetFloat("RunValue", horizontal);
                transform.Translate(Vector3.forward * Time.deltaTime * speed * vertical);
                Vector3 direction = Vector3.forward * vertical + Vector3.right * horizontal;
                transform.Rotate(Vector3.up * Time.deltaTime * rotateSpeed * horizontal);
            }
        }
        //W键或者上方向键抬起的时候执行idle动画
        if (Input.GetKeyUp(KeyCode.W) || Input.GetKeyUp(KeyCode.UpArrow))
        {
            anim.SetBool("Run",false);
        }
    }
}

效果如下:

你可能感兴趣的:(Unity)