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

时间:2017-04-29 16:58:06

标签: c# unity3d 2d collision-detection unity5

我认为品牌是Unity3D 5的新手,我在第一次涉及碰撞检测的2D游戏中遇到了问题。我的移动物体是一个球,有Rigidbody2D和CircleCollider2D。我的静止"对撞机或触发器"是一个BoxCollider并附有一个脚本。当球通过固定盒时,应该触发OnTriggerEnter2D。我也试过OnCollisionEnter2D,但我确信我应该使用OnTriggerEnter2D,因为我的固定盒子被标记为触发器。

我的代码:

{{1}}

正如您所看到的,我正在测试所有变体而没有被调用。以下是我的对象的Unity属性:

Ball

enter image description here

我确定如果有人能指出我的话,我会遗漏一些简单的事情。

2 个答案:

答案 0 :(得分:4)

如果您打算使用OnTriggerEnter2D,您还必须使用2D对撞机。您目前正在使用BoxCollider,如第二张屏幕截图所示。

将其更改为BoxCollider2D,并应调用碰撞回调函数。

答案 1 :(得分:0)

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