【问题标题】:Ground check BoxCast is detecting when player hits bottom of platform. UNITY 2D地面检查 BoxCast 正在检测玩家何时触及平台底部。统一 2D
【发布时间】:2021-01-21 18:26:03
【问题描述】:

我正在制作一个无尽的平台游戏。

    private bool IsGrounded()
    {
        RaycastHit2D raycastHit2d = Physics2D.BoxCast(boxCollider2d.bounds.center, boxCollider2d.bounds.size, 0f, Vector2.down, 0.02f, platformsLayerMask);
        return raycastHit2d.collider != null;
    }

这是我的地面检查。 但我有问题。 IsGrounded 设置为 true,当玩家的头部(顶部)撞击平台底部时(基本上,即使方向设置为向下,Box cast 也会检测到顶部。

像这样:

玩家在平台下无限跳跃

谢谢,如果您需要更多信息,请告诉我! (:

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    RaycastHit2D 具有字段Vector2 normal,您可以检查它是否指向上方,以确保最近的几何图形在您下方。但是当你站在墙附近时检查这种方法是否正常工作(正常可以指向左或右)。在那种特殊情况下,我会再投射一条常规射线来检查地面。

    【讨论】:

    • 嗨@Sergio,我不确定我该怎么做,并且仅使用光线投射在我的平台上不是一个可行的解决方案。感谢您的回答,祝您有美好的一天
    【解决方案2】:

    谢谢。 无论如何,平台受到重力和物理的轻微影响,所以它们稍微旋转导致了这个问题。

    【讨论】:

      猜你喜欢
      • 2014-02-01
      • 2012-10-11
      • 1970-01-01
      • 2018-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      相关资源
      最近更新 更多