天天看點

遊戲戰鬥AI實作

戰鬥AI設計的結果如下:最簡單的戰鬥AI設計

【實作結果】

遊戲戰鬥AI實作

采用緊跟的追蹤方式,Player選擇了最近的目标為敵人,拖動敵人,Player跟随,當敵人距離過遠時,Player沒有了目标,停止移動。

遊戲戰鬥AI實作

采用鎖定的追蹤方式,無論敵人移動到哪裡,Player都會移動到敵人前進行攻擊

遊戲戰鬥AI實作

 采用重擇的追蹤方式,在追蹤敵人的過程中遇到更符合條件的目标就更換敵人

【實作過程】

采用nodecanvas輔助實作這個設計,由于目前的設計很簡單,我們不用根據設計結果提煉出條件節點和行為節點,全部采用行為節點,結果如下:

遊戲戰鬥AI實作

 使用一個Sequencer,動态周遊三個行為節點,其分别對應設計中的三個階段。

Sequencer按從最高優先級到最低優先級(從左到右)的順序執行其子節點,當所有子節點成功完成時傳回成功,當任何子節點失敗時傳回失敗。

行為節點采用自己所寫的腳本。

  • 建立一個PlayerController腳本,為其設定陣營、追蹤方式和攻擊目标字段。
  • 建立一個PlayerManager腳本管理所有角色,其是單例模式, 并實作了SearchTargets和ChooseEnemy方法等。
  • 建立FindEnemy腳本,在OnExecute中實作找到敵人
  • 建立MoveToEnemy腳本,在OnUpdate中實作攻擊觸發、移動和追蹤方式判定
  • 建立AttackEnemy腳本,在OnExecute中調用PlayerController的攻擊方法