如何在Unity中实现跳墙机制的快速指南

704 阅读3分钟

Unity指南

一个关于如何在Unity中实现跳墙机制的快速指南

目的。在Unity中实现一个跳墙机制,使玩家能够在平台游戏中到达更高的地方。

在上一篇文章中,我介绍了如何用Unity实现电梯。现在,是时候实现一个跳墙机制,使玩家能够在我们的平台游戏中自己到达一个新的区域。

如果你还没有看过我创建基于物理学的角色控制器的旧文章,那么我强烈建议你在实现跳墙机制之前先看一下。

当前阶段

为了实现跳墙的机制,我们将使用下一个阶段。

在这个舞台上,我们有几个修改过的立方体,代表一个有墙的狭窄空间,玩家将不得不使用跳墙机制来到达目的地。

实施跳墙机制

所以,为了实现跳墙机制,让我们先给各自的游戏对象打上一个 墙壁 标签。

这样我们就能识别玩家何时与墙壁相撞,从而实现双跳。

然后,让我们打开播放器脚本,创建一对新的变量。

  • 能否跳墙

这个变量将存储一个bool值,以指示玩家是否能够执行跳墙机制。

  • 墙体正常

这个变量将存储Vector3 值,它将定义与玩家试图跳墙时接触到的墙面的法线方向相同。

现在,让我们使用OnControllerColliderHit 方法来检测玩家的角色控制器何时击中另一个碰撞器。这样,我们就能识别玩家何时触碰墙壁,并采取相应的行动来启用跳墙机制。

所以,为了做到这一点,让我们检查角色控制器组件是否没有接触到地面,以及碰撞产生的碰撞器是否属于墙壁。如果是这样的话,让我们从碰撞中保存正常,并将跳墙机制设置为启用。

如果你想了解更多关于OnControllerColliderHit 方法的信息,你可以访问Unity文档。

MonoBehaviour.OnControllerColliderHit(ControllerColliderHit)

现在,为了处理跳墙的机制,让我们去更新 方法,做下一步。

在玩家接触到地面的情况下→

  • 计算方向和速度值,以对玩家的运动产生影响。
  • 通过将各自的bool值设置为false来禁用跳墙机制。

如果玩家没有接触到地面→。

  • 如果空间键被按下。
  • → 如果墙壁跳跃被启用。
  • →→将重力冲力设置为单次跳跃的数值。
  • →→将速度设定为走向正常乘以玩家的速度。
  • →→ 禁用双跳和墙跳机制。
  • 如果启用,则实施双跳。

如果我们用Unity运行游戏,我们会看到,玩家只有在与标记为的游戏对象碰撞时才能跳墙 墙体:

就这样,我们用Unity为我们的平台游戏实现了跳墙机制!:D.我们在下一篇文章中再见,我将展示如何用Unity推动物体来完成一个拼图。

如果你想了解更多关于我的信息,请随时与我联系。 LinkedIn 或访问我的 网站 :D


跳墙|Unity最初发表于Nerd For Techon Medium,在那里人们通过强调和回应这个故事来继续对话。