1、1)Animation动画的创建方式:
![Unity3D:[1]animation与anmimator](https://exp-picture.cdn.bcebos.com/6061b9cd0c6efbf26357ac63127bbbf4db58da78.jpg)
2、选中添加了Animation组件的GameObject并按Ctrl+6打开动画控制器。单击动画控制器左上角,红色原点下方,选择Create New Clip创建新动画。
![Unity3D:[1]animation与anmimator](https://exp-picture.cdn.bcebos.com/8a17b3042e6817e93c05d74cd356d53da924ce78.jpg)
![Unity3D:[1]animation与anmimator](https://exp-picture.cdn.bcebos.com/50189b40102a04e24746e3f62b7aa010bd33c278.jpg)
4、在GameObject中添加脚本,并输入以下代码控制播放动画:
animation.Play("RotationY180_animation");
其中animation是Unity3D预先设定好的,相当于Animation animation = gameObject.GetComponent<Animation>();
5、2)Animator动画的创建方式:
![Unity3D:[1]animation与anmimator](https://exp-picture.cdn.bcebos.com/a31e1214c27bd282036d78f23cb1eef97ebd3679.jpg)
6、选中添加了Animation组件的GameObject并按Ctrl+6打开动画控制器。单击动画控制器左上角,红色原点下方,选择Create New Clip创建新动画。
![Unity3D:[1]animation与anmimator](https://exp-picture.cdn.bcebos.com/023cff37c97622bcee2116d3a05fd54604962879.jpg)
![Unity3D:[1]animation与anmimator](https://exp-picture.cdn.bcebos.com/460fdc8333bf3bef94ab890c3f3ea8db564a1a79.jpg)
8、如果要用代码控制,要先打开Animator控制器,如图:
![Unity3D:[1]animation与anmimator](https://exp-picture.cdn.bcebos.com/cf6d451b1edef4dc0fddcaab45ecd3d968750c79.jpg)
![Unity3D:[1]animation与anmimator](https://exp-picture.cdn.bcebos.com/059057299a8839135701355a26bcbe2f46707c79.jpg)
10、在Animator控制器的左下角,设置一个Parameters,这里设置的是Trigger
![Unity3D:[1]animation与anmimator](https://exp-picture.cdn.bcebos.com/03605157935653bb34c4bd4f1d0b312104617179.jpg)
11、然后在你想使用这个参数的动画的Transition起点中添加这个变量。这里说的Transition起点是指之前创建Transition时,箭头的起始状态,如下图,如果你要控制的动画是RotationY180,那么你就要单击Idle,并设置。设置方式,如下图,单击transition的起始状态,在右边的Inspector中单击Transitions然后在最下面的Conditions中选择你刚刚创建的Parameters。
![Unity3D:[1]animation与anmimator](https://exp-picture.cdn.bcebos.com/e2aefe781431dfb6e8888ed212cf02532e636379.jpg)
![Unity3D:[1]animation与anmimator](https://exp-picture.cdn.bcebos.com/3c42a5ea3e86304888a70e60c33104ebf7a75279.jpg)
12、在添加了这个Animator组件的GameObject上添加脚本,并输入下面代码:
Animator _anitor = gameObject.GetComponent<Animator>();
AnimatorStateInfo stateinfo = _anitor.GetCurrentAnimatorStateInfo(0);
if (stateinfo.nameHash == Animator.StringToHash("Base Layer.Idle") && !_anitor.IsInTransition(0))
{
_anitor.SetTrigger("isR1");
}
![Unity3D:[1]animation与anmimator](https://exp-picture.cdn.bcebos.com/506d92f1d8a72633bf601457c02c56ee7a7f4479.jpg)