我们通过一个Demo来看下Override的问题,如下图我们场景中有一个角色:
注:这个角色名叫 unity-chan ,大家可以在AssetStore里免费的下载,它的由来还是蛮有意思的,只能说小日...小日子过得不错的日本人有趣啊。
这个角色自然有它的Animator组件,关联了一个AnimatorController,如下:
BaseLayer层
Face层
其中在Base层里,我们新增了一个名为Test的State,里面关联了一个名为dummy的AnimationClip,它其实就是新建的一个空的AnimationClip。
Test State
接下来我们要做一个操作,即利用AnimatorOverrideController,在运行时修改Test里的AnimationClip,换成一个原本的Wait的动作,代码很简单如下:
public class NewBehaviourScript : MonoBehaviour
{
public AnimationClip Clip;
public Animator animator;
public Button normalBtn;