Unity如何检测人物跳跃后是否碰到地面
1.普通射线检测:
- 在角色坐标(一般是脚底),发射一根向下的射线(长度约0.2), 但是简单射线只适用于简单地形,实际使用中经常会遇见各种奇怪的问题。
2.Character Controller组件
- Charcter Controller组件调用is.isGrounded是指当角色移动的时候才会去检测是否碰撞并且只能用于代用simplemove和move函数,而且需要自己模拟重力等等。
3.OverlapCapsule 投射胶囊碰撞体
-
这个方法是看傅老师的黑魂复刻系列视频学的
-
API:
-
point0,point1,radius 分别为胶囊体起点球心,胶囊体终点球心,胶囊体半径,获取层级
我们这里只要用到这一重载方法 Physics.OverlapCapsule(pointBottom, pointTop, radius, LayerMask)