參考鏈接:
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。