先前一直想重寫的 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裡的代碼走向.
總括而言,SMB在我的測試的心得來說,主要用作小部件製作是相當方便的.配以OOP的編程架構.
相反若果打算整個人物操作也用SMB將會面對閱讀,架構理解困難,除錯困難的問題.
所以SMB只適合用來製作封裝好的小編程,不超過100行的代碼. 低依賴性的元件.對某些只針對某狀態才作用的代碼由其有效(免去編寫判斷式)