挖坑---敌人孵化后随机生成巡逻路径
最开始的时候用的是手动自己在地图上设置的路径点
开始做多个敌人的时候就发现:
固定的路线导致每个生成的敌人走的地方都一样
不然要手动设置多个路线
Idea:
敌人生成之后会有一个初始位置
在初始位置规划一个范围作为活动范围
活动范围内随机生成N个点作为路点
路点传到EnemyAi的巡逻路线
这个过程只执行一次
EnemyAI那边开放一个bool决定是用随机路点还是手动规划
1.先给场景加一个空物体命名:EnemySpawnManager
下边再挂几个空物体作为具体的孵化点命名:SpawnPos,每个孵化点下面再挂一个空物体命名RandomWayPointsContainer
随机路点上代码:
爬过的坑:
1.路点随机出来只要取用X和Z的坐标,带Y轴的话AI是走不到目的地的,毕竟不会飞天遁地。。。
2.生成路点的脚本不能直接放到敌人预制件上,路点一直随父物体(敌人)移动—生成路点的脚本挂到孵化位置上
每个孵化位置下挂一个脚本:EnemySpawn
用于生成敌人和给敌人的巡逻路径赋值
那个随机产生路点的脚本挂载到RandomWayPointsContainer上面,赋值给敌人的就是这个。
EnemySpawnManager下挂载一个用于管理敌人生成的脚本
这里可以扩展管理敌人的孵化行为
关于这个随机路点,坑又lei了:
随机到的路点有时候在建筑物里面,AI永远走不到位置—以头抢墙。。。
Idea:
way1.随机的范围要去除建筑部分
way2.暂时办法:走不到就切换到下一个点呗
1.能想到的思路:在设定的随机范围内监测建筑的碰撞体,去掉不能走的部分范围(尚未实现)
2.代码逻辑:巡逻的时候开启协程,以一定的时间间隔不断记录AI的位置,如果两者之间的距离小于一定的数值就直接切换到下一个路点。运行起来,敌人的巡逻就看起来正常了。
关于路径随机还有好多东西要学,挖个坑,慢慢补吧。
欢迎各位大佬们的意见。