Важно различать разницу между коллайдерами и триггерами.
Коллайдеры используются системой Физики для того, чтобы объекты не проникали и не перекрывали друг друга.С другой стороны, триггеры созданы для того, чтобы вы могли проверить перекрывающиеся области, например, Ring in Sonic.Соник собирает кольца, но они не мешают ему пройти, думайте о них как о триггерах.Если бы они были коллайдерами, sonic запрыгивал бы в них и отскакивал.
В Unity процесс создания триггера такой же, как и при создании коллайдера, с 1 дополнительным шагом, и это помечает флажок.
Также важно знать, какие функции следует использовать в каждом случае.
OnCollision ... Для коллайдеров (или коллайдеров, не отмеченных как триггеры)
OnTrigger... для триггеров, (Маркировка коллайдера в единстве как триггера делает его триггером.)
Чтобы добавить немного больше деталей, также важно использовать правильные типы коллайдера для правильных размеровигра, 2d коллайдеры / триггеры не взаимодействуют с 3d коллайдерами / триггерами.Более того, физические компоненты: 2d твердотельные тела не работают с 3d коллайдерами, а 3d твердотельные тела не работают с 2d коллайдерами / триггерами.
Таким образом, существуют функции для каждого 2d, 3d, столкновения и триггера.
Другим важным фактором является обеспечение того, что если вы хотите использовать эти функции, хотя бы один из объектов должен иметь твердое тело правильного типа (2d или 3d).
Таким образом, проблема, которую вы выполнялив использовал OnCollisionEnter2D для «коллайдера», который был помечен как триггер, в этом случае OnCollisionEnter2D не вызывается, но вызывается OnTriggerEnter2D.