关于跳跃时地面检测问题 和 重复跳跃的问题. 单独说说
地面检测问题
问题:地面检测这个问题困扰了很久,差点特么的没给打击到, 地面检测用的方法是 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 }
地面层级设置:
地面检测函数中的层级设置: