Unity: базовое 2D твердое тело не обнаруживает столкновения - PullRequest
0 голосов
/ 16 апреля 2019

Во время игры с движком Unity я пытался добавить базовое обнаружение столкновений в мою игру.Я создал два простых объекта, которые движутся в разных направлениях друг к другу (поэтому они сталкиваются).В методе OnCollisionEnter2D (Collision2D col) я поместил Debug.Log (), чтобы проверить, работает ли столкновение.

Я следовал инструкциям из официального канала Unity и выполнил точные шаги, как предусмотрено.Но это все еще не работает!Я прочитал почти каждый пост в Google с той же проблемой, но все еще не нашел решения

Что я пробовал?

  • Z-позиция для обоих объектов установлена ​​на0.
  • Оба объекта имеют RigidBody2D и BoxCollider2D
  • Объекты движутся не слишком быстро, они движутся очень медленно (для тестирования) (я читал, что если они движутся так быстро, чтоони проходят друг через друга между кадрами, столкновение не будет обнаружено)
  • Два триггерных коллайдера не могут столкнуться - один должен быть обычным коллайдером (применяется это)
  • Объекты находятся в одном слоеи я проверил настройки 2D-физики и убедился, что все слои могут взаимодействовать друг с другом.
  • Все мои коллайдеры и RigidBodies являются 2D-вариантом (это решение, которое я читал больше всего в Интернете, но неисправил это для меня!)

Вот два скриншота игровых объектов, с которыми я бы хотел столкнуться.(Извините, я не могу опубликовать изображения, потому что у меня слишком низкая репутация)

enter image description here enter image description here

1 Ответ

1 голос
/ 16 апреля 2019

Попробуйте изменить BodyType на Kinemetic

И используйте Debug.Log() для OnCollisionExit2D, а также OnCollisionStay2D

...