Mecanim用状态机和代码控制状态的改变
1.将动画模型放在场景中.
2.在工程面板创建一个Animator ControllerMecanim用状态机和代码控制状态的改变
Mecanim用状态机和代码控制状态的改变
3.将创建出来的Animator Controller添加进对应的默认动画的Animator->Controller里面.Mecanim用状态机和代码控制状态的改变
4.双击创建出来的Animator Controller.打开状态机(Animator).
5.一些状态机的设置.
Mecanim用状态机和代码控制状态的改变
6.把对应的状态直接拖拽到状态机中,就可以直接生成对应的状态.
Mecanim用状态机和代码控制状态的改变
7.Parameters里面有4个参数.用这4个参数可以设置对应的状态开启条件.
Mecanim用状态机和代码控制状态的改变
8.用Float进行举例说明.我们设置2个参数,分别是Speed和Angular用来控制他的前进和转向.
从Idle状态进入到Run0状态的时候,有3个条件,分别是Speed>0.1 && Angular<0.1 && Angular>-0.1
符合这三个条件的时候,状态机才会从Idle状态转化到Run0的状态.
同样,如果想从Run0到Idle状态,也许要设置条件.
Mecanim用状态机和代码控制状态的改变
这里有一个Has Exit Time的选项,如果勾线的话,就算满足条件也会等这个动画播放完成之后才执行下一个动画.如果不勾选就会立即这个操作.
Mecanim用状态机和代码控制状态的改变
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:尊重原创,转载请注明出处.

相关文章:

  • 2021-08-29
  • 2021-12-22
  • 2022-12-23
  • 2022-01-05
  • 2022-12-23
  • 2021-11-22
  • 2022-12-23
  • 2021-09-13
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2018-09-04
  • 2022-12-23
  • 2021-09-13
  • 2021-10-02
  • 2021-08-14
相关资源
相似解决方案