游戏AI-个体AI角色的操控行为(1)角色以便查询最大速度的等信息
Vehicle m_vehicle;
float maxSpeed;
bool isPlanar;
// Use this for initialization 将追逐此AI的物体拖入Target,在target进入AI的危险感知范围时,AI将进行逃跑
public class SteeringForFlee : Steering {
public GameObject Capsule追随 Sphere逃离
3.抵达
我们希望AI在到达目标的时候减小速度,避免冲过目标,AI进入停止半径后,将逐渐减小预期速度,直到降为0. 如果距离大于减速半径,将预期速度设为最大速度,如果AI进入减速半径,AI将与其速度设置为目标距离减去当前速度,
public class SteeringForArrive : Steering { Arrive.gif
4.追逐
追逐与Arrive很相似,不过目标不再是静止的,而是在移动的,最简单的方法是,让AI直接向目标位置靠近,但我们要让AI预测目标未来的位置,让AI朝着目标未来的位置进行移动 游戏AI-AI角色对环境信息的感知轮询方式
如果想知道周围世界发生了什么,最简单的方法是查询,AI对感兴趣的事件进行查询,基于轮询的感知系统更容易维护的方式是建立一个轮询中心,进行所有的查询. 事件驱动方式
事件驱动中,我们需要一个中心监测系统,发生事件时,通知附近的角色,角色再做出反应.
中心监测系统称为"事件管理器",它记录每个AI角色所感兴趣的事件.当事件发生,通知每个角色." 触发器
与事件驱动系统相对应,触发器是AI角色能对其作出反应的任何“刺激源”,是他们触发了AI角色感兴趣的事件,通常触发器以一个中心点有一个球体立方体或者圆形,触发器非常常见,他们可以创建各种行为和事件