[Unity動畫]06.子狀態機


參考鏈接:

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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM