Unity3d动画-子状态机

参考链接:

https://www.jianshu.com/p/6b1db3d060ac?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

 

子状态机,就是在状态机里面,再创建一个新的状态机,这个新的状态机就叫子状态机。

 

1.创建一个子状态机

右击Animator窗口的空白区域->Create Sub-State Machine,这里我将其命名为Die,然后双击点进去。可以看到,在子状态机中同样存在三种状态,Entry/Exit/Any State,这三种状态是属于子状态机的,而非父状态机。而这里的(Up)Base Layer指的是父状态机,这样就保证了子状态机里面的状态能够与父状态机进行交互。

 

2.进入子状态机

拖入一个Dying动画进去,此时Entry会连接到Dying,表示该子状态机的默认状态是Dying。接着回到父状态机,将Idle连接子状态机,此时会出现选择,连接子状态机 or 连接子状态机里的状态。连接子状态机,实际上相当于连接子状态机中的Entry状态。这两种情况都可以试着去连一下,如果是Idle->Die,则在子状态机中,是Entry跳到Dying;如果是Idle->Dying,则在子状态机中,是(Up)Base Layer跳到Dying。

 

3.退出子状态机

退出子状态机的方法有两种。

一是通过子状态机的Exit状态退出。Die状态机退出后,会回到父状态机,因为没有可以跳的状态,所以重新回到父状态机中的Entry状态。

 

二是通过连接父状态机。如下,子状态机中的Dying连接父状态机中的Run,Die状态机退出后,会回到父状态机,然后跳到Run。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值