底下是目前知道一些重要的觀念
不定時更新~
1.當從StateA>StateMachine B時
呼叫的順序為
B:OnStateMachineEnter
A:OnStateExit
2.這邊整理一下MONO跟STATE的呼叫順序
首先是沒有切換STATE
Awake>Start>Update>OnStateEnter>Update>OnStateUpdate
由此可知每一個Frame,MONO先處理完之後才換到STATE
接下來是有切換STATE(A>B)的順序
並且Transition Duration設為0
Awake>Start>Update>OnStateEnter>Update>OnStateUpdate>Update>OnStateExit(A)>OnStateEnter(B)
>Update>OnStateUpdate(B)
切換STATE時 EXIT跟ENTER會接續完成才進到下一個UPDATE
若Transition Duration不是0
Awake>Start>Update>OnStateEnter(A)>Update>OnStateUpdate(A)>Update>OnStateEnter(B)>Update
>OnStateUpdate(A)>OnStateUpdate(B)>Update>OnStateExit(A)>OnStateUpdate(B)
由此可知 如果你再狀態切換之間
有設立一些重要的BOOL或者判斷式等等
在設計上必須加入Transition Duration該不該為0的考慮
3.在Animator右邊設定
Transition設定裡有個Has Exit Time可以打勾
這是決定你的當前狀態撥到多少百分比之後(0.8=80%)才可以受條件影響
而且進入下一個動畫 非常有用的一個功能!
這個也關係到你在STATEMACHINE腳本裡面設定一些相關的參數喔
設定不好會出錯的
像這裡設定在0.65~0.75之間 EXIT TIME就要注意設定 Transition Duration也有關係!
現在我對這三個數字的詳細設定關係還不熟
不過通常多嘗試幾次就行 要多注意動畫切換間有沒有很詭異才是重點!