• Bot怪AI


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

    image

    1 当游戏开始时

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

    image

    2. 发现玩家

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

    image

    CheckForPlayer实现是简单的,就是计算Bot怪的头与玩家的Camero的距离,如果小于一个值,就认为是发现玩家了,然后计算出Bot怪的旋转量,为什么要计算这个旋转量,因为Bot怪的视野,也就是玩家与Bot怪之间形成的夹角不能小于31度,否则Bot怪就无视玩家了

    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怪射击了

    image这时就调用武器射击

    3Bot怪被刀划

    image

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

    image

    4. 被子弹击中

    imageimageimage

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

  • 相关阅读:
    写在第一篇
    基于EF(Entity Framework)的分层系统中如何传递查询的结果集
    发布一个截图小工具,显示器比较小的CODER可以进来看看。。
    【HDU】3571 Ndimensional Sphere
    【POJ】2065 SETI
    【HDU】3359 Kind of a Blur
    【SGU】275 To xor or not to xor
    【HDU】2449 Gauss Elimination
    【HDU】3976 Electric resistance
    【POJ】2947 Widget Factory
  • 原文地址:https://www.cnblogs.com/BlankEye/p/4248504.html
Copyright © 2020-2023  润新知