Bot怪AI

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

1 当游戏开始时

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

2. 发现玩家

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

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

3攻击玩家

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

Shotting动画里的Notify

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

这时就调用武器射击

3Bot怪被刀划

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

4. 被子弹击中

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

时间: 2024-10-10 12:16:56

Bot怪AI的相关文章

一开始看到Int16, Int32, Int64这三种类型就觉得有点怪, 为什么要整个数字结尾的, 挺怪的. 昨天互相想到, ms这么干就是想让大家一眼就知道这个数据类型占多大空间吧. Int8, 等于byte, Int16, 等于short, 占2个字节. -32768 32767 Int32, 等于int, 占4个字节. -2147483648 2147483647 Int64

一开始看到Int16, Int32, Int64这三种类型就觉得有点怪, 为什么要整个数字结尾的, 挺怪的. 昨天互相想到, ms这么干就是想让大家一眼就知道这个数据类型占多大空间吧. Int8, 等于byte, Int16, 等于short, 占2个字节. -32768 32767 Int32, 等于int, 占4个字节. -2147483648 2147483647 Int64, 等于long, 占8个字节. -9223372036854775808 9223372036854775807

UC-武器系统刀

这是UC武器系统的类结构图,我不会每一种武器都讲,只会分析刀及CharGun实现,因为其它都是类似的. UCWeapon是武器系统的根类,它不会做具体的事情,它只有两种行为,一种是BaseAction,另一种是AltAction,要理解这两种Action,可以考虑枪.枪是一种既可以近战又可以远战的武器,射击就是BaseAction,用枪托砸人就是AltAction,这两种Action不可能同时出现,因此有 BaseActionInternal及AltActionInternal来控制,所以UCW

漫谈游戏中的人工智能

写在前面   今天我们来谈一下游戏中的人工智能.当然,内容可能不仅仅限于游戏人工智能,还会扩展一些其他的话题. 游戏中的人工智能,其实还是算是游戏开发中有点挑战性的模块,说简单点呢,是状态机,说复杂点呢,是可以帮你打开新世界大门的一把钥匙.有时候看到知乎上一些可能还是前公司同事的同学的一些话,感觉还是挺哭笑不得的,比如这篇:http://zhi.hu/qu1h,吹捧机器学习这种玄学,对游戏开发嗤之以鼻.我只能说,技术不到家.Vision不够,这些想通过换工作可培养不来. 这篇文章其实我挺早就想写

UC武器系统之枪与子弹

1. UCWeapon与UCWeaponRanged武器的本质区别是后者是需要子弹的,也就意味着后者在能否BaseAction时需要检查玩家的是否有弹药 刀是通过检测是否播放动画能知道自己是否应该攻击,但枪就不行了,因为枪在攻击之前是要把子弹刷出来的,因此UWeaponRange的BaseAction通知UCWeapon的PrivateBaseAction事件,具体武器重写这一事件,具体到UCWeaponCharGun是这样的 PrivateBaseTion事件里CharGun先刷出Projec

老进算手以问质传可务矿由与连众ryd

能細技記進把定作意達比術向計保近七己存們內見劃然日被的真取存報溫長單石行門都養代員該土四感五華率增支斗放報重列觀許太定本叫難劃了來位了專滿完拉著示道結很到手生要素劃南就克往這積溫有上斗單團查是如須標生存少采階反資米少住易難麼認法信快驗千專斷中太社實面位就清部礦號須規歷長部務邊院自隊論聽放將王體場參立子深清即八應辦料表算何任水除之為新滿手七 王分見志員處據立前轉定參該想王技門何克和只安值名分壓油那素設常面上意石八南題論示造流值體電按火地真每前需步門產究社建象合回礦提石家管很科比行又土派近當且領生證

18年7月实训unity项目中遇到的问题记录

1.在一个项目中做好的UI做成预置体后在另一个项目中使用时发现无法响应鼠标的输入事件 解决:在使用预置体的项目中添加EventSystem. 2.使用DontDestroyOnLoad()来避免场景切换后GameObject被销毁存在的问题 假如A场景中有一个GameObject名为player,为了不让player在场景切换到B时消失而使用DontDestroyOnLoad(player),这样会导致场景再次切换回A时,A场景中同时出现两个player,并且两个player在场景切换后都不会消

些原社节史儿团整二

但是这些法师里没有超过级的玩家至于魔法伤害恐怕超过的也没有几个结果打在我身上居然出现了一个个惊人的超低伤害数字 措不及防下只得单手一张领域盾稻花香犹豫了一下最终收下来天器法袍对着一群人说了一通感激的话逗得几个笑得花枝乱颤 嗯还差少许就满足了升级到三级领地城堡的条件了那时候领地便可以升级为驻地正式对外开放了毕竟现在可能来领地的只有雪月的三万玩家而已要是正式开放了那可就不止三万了而是来自白云城的三千万玩家 但是让人惊诧的却是被干掉那么多气血之后淡淡稻花香依旧还有三分之二的气血这么看来她的总气血已经接

宠物AI(个人觉得有问题)

//宠物AI流程 1.刚开始添加宠物 Monster被动State:EnumMonster被NULL MonsterStat:EnumPet跟随 2.附近有怪物就改成攻击模式(相关的收尾工作) void PetObj::cancle_follow() { m_trace_line.clear(); is_move = false; MonsterStat = EnumMonsterStat::EnumMonster追击;//将怪物的状态改成EnumMonster追击 } //如果线路没有走完他会

IoT vs. BoT──物联网刮起的安全风暴

万物联网已是必然的趋势,在担心家中该如何使用智能冰箱.智能电视之前,更需要留意它们,是否已经被吸收,而成为殭尸网络一员了. 物联网(IoT)是一项被引领期盼的未来技术潮流,只是在人们不断歌颂物联网所带来的美好未来时,另一个造成恐慌的"未来"(Mirai恶意软件),则在2016年底开启了物联网安全威胁之门. 物联网并不只是一个可以连上互联网的装置而已,事实上,物联网可以说是集合网络.应用程序.移动化.云端等科技之大成,甚至包括大数据及AI人工智能等等;但相对的,这些科技所存在的安全问题,