Коллайдер Unity3D проходит через другие коллайдеры - PullRequest
1 голос
/ 06 мая 2020

Проблема: Me sh коллайдеры на некоторые твердые тела проходят через коллайдеры на других объектах.

Вещи, которые я пробовал:

При предположении, что A - это GameObject с прикрепленным RigidBody, а B - нормальный GameObject с коллайдером.

  • Дайте A выпуклое я sh collider
  • Дайте A невыпуклое me sh collider
  • Дайте B выпуклое me sh collider
  • Дайте B невыпуклое me sh collider
  • дать B коллайдер коробки
  • дать B выпуклое me sh и box collider
  • дать B невыпуклое me sh и box collider
  • Регулировка веса жесткого тела

Я пробовал все это во всех комбинациях A и B.

Кроме того,

  • Коллайдеры не помечены как триггеры
  • Все объекты находятся на слое по умолчанию (0)
  • Проверка isKinematic; казалось, что при этом гравитация перестает влиять на объект, поэтому я оставил это как ложное.

Ограничения: Я хочу, чтобы A использовал коллайдер me sh, поскольку большая часть задействованные объекты умеренно сложные, и установка на них других коллайдеров займет некоторое время. отлично работает с невыпуклым коллайдером me sh. Это несовместимо с другими игровыми объектами. Все объекты имеют одинаковые настройки.

Я использую версию Unity 2019.3.11f1, если это уместно.

Используемые объекты взяты из этого пакета . В частности, картотека inet с жесткими корпусами на ящиках работает нормально. Стол, офисное кресло, ручка и открытый ноутбук проваливаются сквозь «пол» (куб, на котором проверены все вышеперечисленные коллайдеры).

Ответы [ 2 ]

1 голос
/ 06 мая 2020

У вас есть проверка isKinemati c на объектах с твердыми телами, которые проходят через другие коллайдеры? Если это так, снимите отметку, чтобы на него воздействовали внешние силы.

edit, вам также необходимо щелкнуть выпуклый на коллайдерах me sh, если они сталкиваются с другими коллайдерами me sh, Convex Me sh Collider ограничено 255 треугольниками, имеют ли объекты, которые не проходят, более 255 треугольников в геометрии?

0 голосов
/ 05 июня 2020

Я предполагаю, что вы установили обнаружение столкновений на Discrete в RigidBody вашего gameObject, если это так, убедитесь, что вы выбрали Collision Detection на Continuous в RigidBody вашего gameObject.

Причина, по которой это не работает

  1. Вы пытаетесь использовать столкновение, которое имеет (скорость> скорость кадра вашего компьютера), поэтому кадр не захватывает коллайдер должным образом некоторое время, а некоторые время не может уловить.

  2. Вы перемещаете свои GameObjects с помощью tranform.translate или position et c. В таком случае обязательно используйте функцию Rigidbody Related для позиционирования, вращения.

Изображение решения для первой проблемы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...