碰撞检测在Unity 2D中不起作用

Jea*_*ley 12 c# unity-game-engine

我有两个2D游戏对象.它们每个都有一个Box Collider 2D和一个不是运动学的刚体2D.当游戏进行时,一个人向另一个移动并与之相撞.

但是,我在移动GameObject中也有以下方法:

void OnCollisionEnter(Collision collision) 
{
    print( "Collided with someone" );
}
Run Code Online (Sandbox Code Playgroud)

print语句永远不会打印,因此可能从未调用过该方法.我哪里错了?

T. *_*ley 27

Unity已经复制了2D的所有物理方法,并在末尾粘贴了"2D"字样!因此,对于您的示例,应将其更改为:

void OnCollisionEnter2D(Collision2D collision)
Run Code Online (Sandbox Code Playgroud)

和基本上任何其他2D物理事物一样.