Unity. 2D коллайдер объекта, перекрывает другой коллайдер, находящийся над ним
У меня есть объект Card, который я могу перетащить на другой объект Hand. Hand и Card обладают 2D коллайдерами. Order in Layer у Card выше, чем у Hand и она отображается сверху, но при этом ее коллайдер перестает каким-либо образом регестрировать наведение мышью. Если карта не находится внутри коллайдера Hand все работает отлично. Каким образом это можно исправить?

Ответы (2 шт):
Проблема решена. Нужно просто было изменить координату Z у Hand так, чтобы она находилась дальше от камеры, чем Card
Так как 2D физика это подмножество 3D физики, то для 2D действуют такая же логика как и для обычной физики. Есть некоторые ограничения выведенные из требований что Z(глубина) не имеет значения для отрисовки и все лучи исходящие от камеры являются параллельными оси Z.
Судя из описания проблемы, из физики используется колайдеры и event system с Raycast2D, которые выполняют запросы к физике(Raycast) в физическую сцену для того чтобы получить объект который находится под мышкой или нажатием и отправить ему сообщение об этом.
Т.к. ваши объекты на сцене имеют одинаковые координаты Z - они вступают в гонку "кто будет первым в списке на проверку на пересечение с лучем" и только один из них выигрывает ее условно-случайном образом(например один выше в иерархии сцены, или позже создавался).
Решение - управлять порядком через контролирование Z координаты. Тот кто имеет ближе к 0 значение тот и будет блокировать отстальных.
