动画控制器用于实现动画状态机。以 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:如果勾选,就会等当前动画播放完成之后再进行转换;如果不勾选,则会立即切换到目标状态。