EQS系统
前期准备
1.创建以下几个类文件
1_1>创建必要的文件
其中EQC_C是继承自EnvQueryContextBlueprintBase的类
1_2>对EQC_C修改
对这个方法重载,用一个玩家角色作为返回值
2.对EQSAIController的操作
2_1>先添加视觉组件
2_2>重载AI感知中,当AI感知发生变化方法(视觉)
代码解释:先保存看到的Actor,判断看到的Actor是否含有Player标签,并且是看到的情况下
设置黑板值(下图).SeePlayer为true,并设置看到的PlayerActor黑板值为Actor(看到的物体)
如果没看到,就先执行看不到玩家代码,然后过5s后执行PlayerActor为空的函数.
2_2>黑板值补充
注:其中PointActor的Object的BaseClass为Actor
2_3>上图函数方法补充
3.对于EQS_FindPlayer 的书写
3_1>打开EQS场景查询,在下面添加一个PointGrid,并修改网格范围大小.
3_2>添加一个追踪测试一个距离测试并设置参数如下
注:距离测试是对返回的项目计分,-1是离得近的得高分,1是离得远的分数高
4.对于行为树EQS_BT的编写
行为树如图所示
5.关于随机找点的复习
此方法在AI篇前面文章用过,此处不过多解释
6.一些细节部分
6_1>最后别忘了在AI控制器中运行行为树
6_2>别忘了给第三人称角色类加标签
6_3>别忘了添加导航网格部分内容.
7.功能演示
角色被巡逻的AI发现后,如果视野被挡住,AI会自己找附近点位置,使得自己能看到角色,如果角色距离太远看不到超过5s后,AI就会重新巡逻.