OnCollisionEnter2d определяет столкновение не с нужным объектом, а с его родителем, хотя они находятся на разных слоях, и вообще с некоторыми другими объектами на других слоях, которые по идее тоже не должны коллизиться. Что проверить? непонятно. Объект на котором скрипт проверки столкновений, сам имеет родителя, и они тоже на разных слоях