Bot怪AI

UC中只有一种怪Bot,这是一种很简单的怪,它不会跑,只会旋转并原地射击,因此也没有用什么行为树之类的,因此这里围绕Bot怪如何发现玩家、攻击玩家、被玩家攻击分析Bot怪编辑器

image

1 当游戏开始时

能够看到在编辑器时Bot怪是没有带武器的,是在游戏开始是把武器刷出来,放在手上的动画

image

2. 发现玩家

当游戏开始时,Bot怪就启动了一个0.5秒的定时器,执行CheckForPlayer去扫玩家,3d

image

CheckForPlayer实现是简单的,就是计算Bot怪的头与玩家的Camero的距离,若是小于一个值,就认为是发现玩家了,而后计算出Bot怪的旋转量,为何要计算这个旋转量,由于Bot怪的视野,也就是玩家与Bot怪之间造成的夹角不能小于31度,不然Bot怪就无视玩家了blog

image

imageimageimage

3攻击玩家

攻击玩家是Bot怪AI最有趣的部分,整体逻辑来讲,Bot怪的Update(Tick)事件里,会一直检查是否发现了玩家,若是是就会一真调整本身的方向,使本身与玩家的夹角大于31度,而后会设置一个很重要的变量HasLOS,这个变量会改变Bot怪动画BP里的状态机由Idel转向Shoot,而后播放Shoot动画,Shoot动画会有一个Notify,通知Bot怪射击游戏

image

image

Shotting动画里的Notify事件

image当播放到SpawnProjectile这一帧时,就会触发Bot怪射击了get

image这时就调用武器射击it

3Bot怪被刀划

image

Bot怪被刀划后,HitPoints-2,在击中位置刷一个血污效果,而且给它一个冲力,而后怪就死亡了,变量

image

4. 被子弹击中

imageimageimage

 

-----------转载请标明出处date

相关文章
相关标签/搜索