动画控制器用于实现动画状态机。以 entry - idle - run 这条链路为例,可以直观地看出各个状态之间的动画关系:idle 和 run 之间可以相互切换,切换的触发条件由动画 parameter 中的 Bool 类型参数 Run 来决定。

在 Animator 中为状态之间的转换设置好条件之后,代码里就可以通过下面的方式来控制动画:

   Animator  ani  ;
    // Use this for initialization
    void Start()
    {
        ani = GetComponent<Animator>();
    }

    // Update is called once per frame
    void Update()
    {
      if(Input.GetKey(KeyCode.W))
      {
          ani.SetBool("Run", true);
      }

      if (Input.GetKey(KeyCode.S))
      {
          ani.SetBool("Run", false);
      }

状态转换条件里有一个选项 Has Exit Time:如果勾选,就会等当前动画播放完成之后再进行转换;如果不勾选,则会立即切换到目标状态。