碰撞后不调用Unity5 OnTriggerEnter2D(2D游戏)

Unity5 OnTriggerEnter2D not called after collision (2D game)

我是 brand Unity3D 5 新手,我在玩我的第一个涉及碰撞检测的 2D 游戏时遇到问题。我的移动对象是一个球,它有 Rigidbody2D 和 CircleCollider2D。我的文具 "collider or trigger" 是一个 BoxCollider 并附有一个脚本。 OnTriggerEnter2D 应该在球穿过固定框时触发。我也尝试过 OnCollisionEnter2D,但我相当确定我应该使用 OnTriggerEnter2D,因为我的固定框被标记为触发器。

我的代码:

public class LoseCollider : MonoBehaviour {

public LevelManager levelManager;

void OnCollisionEnter2D(Collision2D collision)
{
    print("collide");
    levelManager.LoadLevel("Lose");
}

void OnTriggerEnter2D(Collider2D trigger)
{
    print("trigger");
    levelManager.LoadLevel("Lose");
}

void OnCollisionEnter(Collision collision)
{
    print("collide");
    levelManager.LoadLevel("Lose");
}

void OnTriggerEnter(Collider trigger)
{
    print("trigger");
    levelManager.LoadLevel("Lose");
}
}

如您所见,我正在测试所有变体,并且正在调用 none。这是我的对象的 Unity 属性:

我确定我遗漏了一些简单的东西,如果有人可以指出给我。

如果您要使用 OnTriggerEnter2D,您还必须使用 2D 碰撞器。如第二个屏幕截图所示,您当前正在使用 BoxCollider

将其更改为 BoxCollider2D 并且您的碰撞回调函数应该被调用。

我知道你已经解决了,但我 运行 遇到了同样的问题并找到了你的 post。我使用的是正确的 2D 对撞机,但缺少 Ridgedbody 2D 组件。我花了一段时间才找到它,所以我想在这里添加它以防其他人遇到同样的问题。