Unity高级动画(Animation)-动画状态机

一、动态系统种类:

  1. Animation动画状态机:是旧版的动画状态机
  2. Animator动画状态机:是新版的动画状态机,其实就是由Animation组成的(这里我们常用这个)
* Animator其实就是把Animation统一管理和逻辑状态管理的组件,更方便的图形化状态管理。而Animation就是每一个动画。

(1)首先拖拽官方的人物模型(自带Animator)

Unity高级动画(Animation)-动画状态机_第1张图片
Paste_Image.png

(2)要想动画在运行后动,那就要将动画预制物的属性修改为Humanoid 如下图:


Unity高级动画(Animation)-动画状态机_第2张图片
Paste_Image.png

(3)然后控制人物移动添加脚本(WSAD来移动)

public class Animation_VR : MonoBehaviour {
public Animator ani;

void Start () {
    ani = GetComponent ();

    //ani.SetLayerWeight (1,1);   //设置权重信息(代表那个动画层,权重)
}

void Update () {
    float h = Input.GetAxis("Horizontal");
    float v = Input.GetAxis("Vertical");

    ani.SetFloat ("Run",v);
    ani.SetFloat ("Rotation",h);
  }
}
创建一个动画状态机,编辑名称后打开
Unity高级动画(Animation)-动画状态机_第3张图片
image.png

Unity高级动画(Animation)-动画状态机_第4张图片
image.png

点击执行条件进行添加需要执行的动作(状态),这里需要注意的是:为了一个游戏的完整性我们需要在条件中添加执行和返回。(本文中添加的是一个奔跑的过程添加了两个执行条件才能实现人物在奔跑的过程中能随时停止)


Unity高级动画(Animation)-动画状态机_第5张图片
image.png

Unity高级动画(Animation)-动画状态机_第6张图片
image.png

现在点击播放就能看到随着执行的条件人物模型开始动作了

Unity高级动画(Animation)-动画状态机_第7张图片
image.png

你可能感兴趣的:(Unity高级动画(Animation)-动画状态机)