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

1.16 创建跳跃系统

假设正在开发一款很酷的动作类游戏,玩家可以通过悬崖或屋顶逃跑。在这种情况下,敌人要能够追赶玩家,并且要足够聪明地去识别是否跳跃并计算出怎么跳。

准备工作

我们需要创建基本的速度匹配算法,以及弹跳板和着陆板的概念,以便模拟出能够着陆的速度算法。

下面的代码用于VelocityMatch行为:

另外,还要创建一个数据类型JumpPoint

操作步骤

1. 创建Jump脚本及其成员变量:

2. 实现SetJumpPoint函数:

3. 添加一个函数用于计算目标:

4. 实现CheckJumpTime函数,计算是否值得跳跃:

5. 定义GetSteering函数:

运行原理

此算法根据agent的速度来计算是否能够到达着陆板。如果判断出agent可以到达着陆板,那么在寻找着陆板的位置时试着去给出相应的纵向速度。