OnCollisionEnter 不能处理重复的对象

时间:2021-03-04 23:41:24

标签: c# unity3d

所以我有一堵墙,玩家可以在上面跳跃并检测碰撞并减少重力。这工作正常。 这就是它的样子 Mossy Wall (L)

这是代码:

 private void OnCollisionEnter2D(Collision2D collision)
{
    if (collision.gameObject.CompareTag("MossWall"))
    {
        onMossyWall = true;
    }
}

private void OnCollisionExit2D(Collision2D collision)
{
    if (collision.gameObject.CompareTag("MossWall"))
    {
        onMossyWall = false;
    }
}

正如您所看到的,这是非常基本的,我想要的只是在发生碰撞时将 onMossyWall 设置为 true,它非常适合这种情况。 现在我想做同样的事情,但是对于对面的墙,我复制了对象 (Moss Walls (R)),然后旋转平台效应器使其处于相反的方向,但没有任何反应。 onMossyWall 保持虚假。标签相同,对象与第一个基本相同,为什么这不起作用? Mossy Wall (R)

我想我一定忘记了一些愚蠢的事情,但我一直在寻找解决方案一段时间,但没有找到任何有效的方法。我尝试使用不同的标签,但仍然没有。

1 个答案:

答案 0 :(得分:-1)

正如统一文档所述:

<块引用>

当碰撞体/刚体开始时调用OnCollisionEnter 接触另一个刚体/碰撞器。

所以请确保两个物体上都有碰撞器,并且其中一个物体必须有刚体。

相关问题