Unity指南
一个关于如何在Unity中实现跳墙机制的快速指南
目的。在Unity中实现一个跳墙机制,使玩家能够在平台游戏中到达更高的地方。
在上一篇文章中,我介绍了如何用Unity实现电梯。现在,是时候实现一个跳墙机制,使玩家能够在我们的平台游戏中自己到达一个新的区域。
如果你还没有看过我创建基于物理学的角色控制器的旧文章,那么我强烈建议你在实现跳墙机制之前先看一下。
当前阶段
为了实现跳墙的机制,我们将使用下一个阶段。
在这个舞台上,我们有几个修改过的立方体,代表一个有墙的狭窄空间,玩家将不得不使用跳墙机制来到达目的地。
实施跳墙机制
所以,为了实现跳墙机制,让我们先给各自的游戏对象打上一个 墙壁 标签。
这样我们就能识别玩家何时与墙壁相撞,从而实现双跳。
然后,让我们打开播放器脚本,创建一对新的变量。
- 能否跳墙
这个变量将存储一个bool值,以指示玩家是否能够执行跳墙机制。
- 墙体正常
这个变量将存储Vector3 值,它将定义与玩家试图跳墙时接触到的墙面的法线方向相同。
现在,让我们使用OnControllerColliderHit 方法来检测玩家的角色控制器何时击中另一个碰撞器。这样,我们就能识别玩家何时触碰墙壁,并采取相应的行动来启用跳墙机制。
所以,为了做到这一点,让我们检查角色控制器组件是否没有接触到地面,以及碰撞产生的碰撞器是否属于墙壁。如果是这样的话,让我们从碰撞中保存正常,并将跳墙机制设置为启用。
如果你想了解更多关于OnControllerColliderHit 方法的信息,你可以访问Unity文档。
MonoBehaviour.OnControllerColliderHit(ControllerColliderHit)
现在,为了处理跳墙的机制,让我们去更新 方法,做下一步。
在玩家接触到地面的情况下→
- 计算方向和速度值,以对玩家的运动产生影响。
- 通过将各自的bool值设置为false来禁用跳墙机制。
如果玩家没有接触到地面→。
- 如果空间键被按下。
- → 如果墙壁跳跃被启用。
- →→将重力冲力设置为单次跳跃的数值。
- →→将速度设定为走向正常乘以玩家的速度。
- →→ 禁用双跳和墙跳机制。
- 如果启用,则实施双跳。
如果我们用Unity运行游戏,我们会看到,玩家只有在与标记为的游戏对象碰撞时才能跳墙 墙体:
就这样,我们用Unity为我们的平台游戏实现了跳墙机制!:D.我们在下一篇文章中再见,我将展示如何用Unity推动物体来完成一个拼图。
跳墙|Unity最初发表于Nerd For Techon Medium,在那里人们通过强调和回应这个故事来继续对话。