【Unity小技巧】踩在上面可以站立,从下面跳跃可以穿透的平台

前言

在平台跳跃游戏中,会遇到一种特殊的平台,从上面落下可以站在平台上面,从平台下面跳跃则可以穿透平台,如下图所示:
可以穿透的平台

思路

原以为实现这种效果要自己写代码,当玩家跳跃的时候发射一条射线检测是否与上方的平台发生碰撞,如果发生碰撞就把玩家的刚体组件关掉,等落到平台的时候再重新开启,但实际上 Unity 引擎自带了这种特殊的碰撞组件,即根据角度来判定是否产生碰撞。

实现

创建一个 2D 图块用来测试,调节 scale 让它变成一个长条形的平台,修改 Tag 和 Layer 为设定好的 Ground(地板),再给它加上刚体和碰撞盒子,如下图所示:
创建一个平台

到上面为止都是常规操作,接下来再给这个对象添加一个特殊的组件“Platform Effector 2D”,然后碰撞盒子组件的“Used By Effector”也勾选上:
Platform Effector 2D

神奇的一幕发生了!刚刚创建的平台,上面有个半圆形的区域,这个区域就是可碰撞范围了。至此,从上面落下可以站立,从下面跳跃可以穿透的平台就实现了!

扩展

如果要实现站在平台上,按下方向键可以穿透落下呢?这个时候就要用到上面的思路了,当玩家站在平台的时候,检测是否按下下方向键,如果按下下方向键就关闭玩家的刚体组件,直到玩家与平台离开接触的时候再恢复就可以了。

文章作者: 火烧兔子
文章链接: http://huotuyouxi.com/2022/12/15/unity-tips-039/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 火兔游戏工作室