关于跳跃时地面检测问题 和 重复跳跃的问题. 单独说说

地面检测问题

问题:地面检测这个问题困扰了很久,差点特么的没给打击到, 地面检测用的方法是 Physics2D.OverlapCircle(); 但是我在用这个方法时,发现弄死检查不到东西,要不就是其他错误,后来整了很久很久! 终于找到了解决办法. 实际上方法依然是这个方法, 但是在传递参数时有了问题, 我是直接将角色本身的位置传递进去的,但是结果很明显,是错误的,  

解决方法: 在 Hierarchy 面板 给角色创建一个空的子物体. 然后将子物体拖到脚底 要检测的高度,然后将该子物体的位置信息参数 传入检测方法内,就行了......范围的话根据情况设置就可以了.... 同理,要检测天花板的话 也可以用这个方法!!! 注意!!! 最后要将检测层级设置一下,就是要检测的层级是哪一层.

 

这时候如果我们不将检测的层级跟,地面的层级设置好的话, 就会造成一种很难受的bug.  就是如这一篇博客中的'跳跃'问题  

注意: 在设置完以上的之后, 我们需要将层级的变量设置一下, 比如地面的层级我将之设置为 'Grounp',然后跳跃代码中,检测地面层级的变量也设置为检测 'Ground' 就可以完美解决了! 

代码如下:

1     public LayerMask ground;
2 
3     private void FixedUpdate()
4     {
5         isGround = Physics2D.OverlapCircle(groundCheck.position, 0.1f, ground);
6     }

 

地面层级设置:

 

 

地面检测函数中的层级设置:

 

posted @ 2021-04-17 14:19  半仁  阅读(230)  评论(0编辑  收藏  举报