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

Bri*_*egg 3 c# 2d collision-detection unity-game-engine unity5

我是品牌新Unity3D 5,我有我的第一个2D游戏,涉及碰撞检测的问题。我的移动物体是一个球,有 Rigidbody2D 和 CircleCollider2D。我的固定“碰撞器或触发器”是一个 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");
}
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在测试所有变体,但没有调用任何变体。这是我的对象的 Unity 属性:

球

在此处输入图片说明

我确定我错过了一些简单的东西,如果有人可以请向我指出。

小智 5

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

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