- Unity人工智能实战(原书第2版)
- (智利)豪尔赫·帕拉西奥斯
- 278字
- 2021-01-07 11:17:07
1.16 创建跳跃系统
假设正在开发一款很酷的动作类游戏,玩家可以通过悬崖或屋顶逃跑。在这种情况下,敌人要能够追赶玩家,并且要足够聪明地去识别是否跳跃并计算出怎么跳。
准备工作
我们需要创建基本的速度匹配算法,以及弹跳板和着陆板的概念,以便模拟出能够着陆的速度算法。
下面的代码用于VelocityMatch行为:
另外,还要创建一个数据类型JumpPoint:
操作步骤
1. 创建Jump脚本及其成员变量:
2. 实现SetJumpPoint函数:
3. 添加一个函数用于计算目标:
4. 实现CheckJumpTime函数,计算是否值得跳跃:
5. 定义GetSteering函数:
运行原理
此算法根据agent的速度来计算是否能够到达着陆板。如果判断出agent可以到达着陆板,那么在寻找着陆板的位置时试着去给出相应的纵向速度。