Обнаружение столкновений не работает в Unity 2D

У меня есть два 2D игровых объекта. У каждого из них есть Box Collider 2D и жесткое тело 2D, которое не является кинематическим. Когда игра играет, одна движется к другой и сталкивается с ней.

Однако у меня также есть следующий метод в движущемся GameObject:

void OnCollisionEnter(Collision collision) 
{
    print( "Collided with someone" );
}

Оператор печати никогда не печатает, поэтому предположительно метод никогда не вызывается. Где я иду не так?

Ответ 1

Единство реплицировало все физические методы для 2D со словом "2D", застрявшим на конце! Поэтому для вашего примера это должно быть изменено на:

void OnCollisionEnter2D(Collision2D collision)

И то же самое с любой другой физической физикой.