1.将动画模型放在场景中.
2.在工程面板创建一个Animator Controller
3.将创建出来的Animator Controller添加进对应的默认动画的Animator->Controller里面.
4.双击创建出来的Animator Controller.打开状态机(Animator).
5.一些状态机的设置.
6.把对应的状态直接拖拽到状态机中,就可以直接生成对应的状态.
7.Parameters里面有4个参数.用这4个参数可以设置对应的状态开启条件.
8.用Float进行举例说明.我们设置2个参数,分别是Speed和Angular用来控制他的前进和转向.
从Idle状态进入到Run0状态的时候,有3个条件,分别是Speed>0.1 && Angular<0.1 && Angular>-0.1
符合这三个条件的时候,状态机才会从Idle状态转化到Run0的状态.
同样,如果想从Run0到Idle状态,也许要设置条件.
这里有一个Has Exit Time的选项,如果勾线的话,就算满足条件也会等这个动画播放完成之后才执行下一个动画.如果不勾选就会立即这个操作.
9.用对应的脚本来控制Speed或者Angular设置他们的值.
private
Animator
ani;
void
Awake
()
{
ani = GetComponent<
Animator
>();
}
void
Update
() {
ani.SetFloat(
"Speed"
,
Input
.GetAxis(
"Vertical"
));
ani.SetFloat(
"Angular"
,
Input
.GetAxis(
"Horizontal"
));
}
Ps:用关键字Awake在程序唤醒之前就得到Animator的组件.
Animator有几个方法.分别可以设置上面对应Parameters.
分别为:
ani.SetFloat("A",B);
ani,SetBool("C",D);
A:表示在Parameter名字
B:Float属性值
C:表示在Parameter名字
D:Bool属性值
10.不管当前在何种状态,只要满足条件,都会触发Dying的动画.
这个就是
Any State
的用法.其实相当于每一个状态都指向Dying,并且触发条件一样.
ani.SetBool(
"IsDie"
,
Input
.GetKeyDown(
KeyCode
.Space));
PS:尊重原创,转载请注明出处.