狀態機是實現AI的基本機制,而命令模式是解耦狀態機和外部輸入事件的一種方式。緩存
在quake雷神之錘中大量使用了命令模式:code
命令模式首先有一個 命令緩衝區 用於存放外部發送的命令, 狀態機註冊相關命令的 handler用於監聽關心的事件。事件
實現以下:字符串
gameObject ----->CommandHandler ----->StateMachine
當stateMachine關心的事件發生的時候,會將事件緩存到 stateMachine內部,當某個state執行checkCommand代碼的時候,會唱那個stateMachine的命令緩存中讀取命令。擴展
而命令能夠是字符串格式, 經過解析獲得具體命令含義。這樣擴展性不錯。handler