UC中只有一種怪Bot,這是一種很簡單的怪,它不會跑,只會旋轉並原地射擊,因此也沒有用什麼行爲樹之類的,因此這裏圍繞Bot怪如何發現玩家、攻擊玩家、被玩家攻擊分析Bot怪編輯器
能夠看到在編輯器時Bot怪是沒有帶武器的,是在遊戲開始是把武器刷出來,放在手上的動畫
當遊戲開始時,Bot怪就啓動了一個0.5秒的定時器,執行CheckForPlayer去掃玩家,3d
CheckForPlayer實現是簡單的,就是計算Bot怪的頭與玩家的Camero的距離,若是小於一個值,就認爲是發現玩家了,而後計算出Bot怪的旋轉量,爲何要計算這個旋轉量,由於Bot怪的視野,也就是玩家與Bot怪之間造成的夾角不能小於31度,不然Bot怪就無視玩家了blog
攻擊玩家是Bot怪AI最有趣的部分,整體邏輯來講,Bot怪的Update(Tick)事件裏,會一直檢查是否發現了玩家,若是是就會一真調整本身的方向,使本身與玩家的夾角大於31度,而後會設置一個很重要的變量HasLOS,這個變量會改變Bot怪動畫BP裏的狀態機由Idel轉向Shoot,而後播放Shoot動畫,Shoot動畫會有一個Notify,通知Bot怪射擊遊戲
Shotting動畫裏的Notify事件
當播放到SpawnProjectile這一幀時,就會觸發Bot怪射擊了get
Bot怪被刀劃後,HitPoints-2,在擊中位置刷一個血污效果,而且給它一個衝力,而後怪就死亡了,變量
-----------轉載請標明出處date