先前一直想重寫的 Character Controller 終於開始訂好架構了.
結合 StateMachineBehaviour(SMB) 及 OOP 架構的 Avatar 操作器.
起初在測試 StateMachineBehaviour(SMB) 時浪費不小時間,原本打算棄用SMB直接重寫OOP 架構.
但在界定LegCycle (左右腳位置)的代碼時發現SMB還真是非常有用,
特別是在處理一些需要在特定state執行的代碼.
只需要由處理animator的class,預先給予相關的component: rigidbody, collider...etc. SMB拿到後直接算即可.
代碼維護上比以往一堆class要找回關係的情況更易於管理.
個人比較喜歡用SMB去決定需要更新的animator parameter,借mecanime免除一堆多餘的判斷碼,又更清楚animator裡的代碼走向.