上QQ阅读APP看书,第一时间看更新
1.3 追赶和逃跑
追赶和逃跑这两种行为作为学习的开端非常好,因为它们依赖于大多数基础行为,然后通过预测目标的下一步行动来扩展功能。
准备工作
我们需要两个叫作Seek和Flee的基础行为,在脚本的执行顺序中把它们放在Agent类之后。
下面是Seek行为的代码:
还需要实现Flee行为:
操作步骤
Pursue(追赶)和Evade(逃跑)本质上是相同的算法,但派生它们的基类不同。
1. 创建继承于Seek类的Pursue类,并添加用于保存预测值的属性:
2. 实现Awake函数,用于根据实际目标初始化所有属性:
3. 实现OnDestroy函数,以便合理地管理内部对象:
4. 实现GetSteering函数:
5. 创建Evade行为,过程相同,但要注意父类是Flee:
运行原理
这两个行为依赖于Seek和Flee,然后根据目标的速度预测走向,在内部用一个额外的对象作为目标位置。