我们需要实现可以向左向前向右跑
混合树创建步骤:1.右击出现creat state -> from blend Tree
配置混合树
参考代码如下:
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<Animator>();
}
// 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);
}
}
}
效果如下: