Unity人工智能实战(原书第2版)
上QQ阅读APP看书,第一时间看更新

1.3 追赶和逃跑

追赶和逃跑这两种行为作为学习的开端非常好,因为它们依赖于大多数基础行为,然后通过预测目标的下一步行动来扩展功能。

准备工作

我们需要两个叫作SeekFlee的基础行为,在脚本的执行顺序中把它们放在Agent类之后。

下面是Seek行为的代码:

还需要实现Flee行为:

操作步骤

Pursue(追赶)和Evade(逃跑)本质上是相同的算法,但派生它们的基类不同。

1. 创建继承于Seek类的Pursue类,并添加用于保存预测值的属性:

2. 实现Awake函数,用于根据实际目标初始化所有属性:

3. 实现OnDestroy函数,以便合理地管理内部对象:

4. 实现GetSteering函数:

5. 创建Evade行为,过程相同,但要注意父类是Flee

运行原理

这两个行为依赖于SeekFlee,然后根据目标的速度预测走向,在内部用一个额外的对象作为目标位置。