Tube Mesh Collider имеет стенки в отверстиях и деформируется - PullRequest
1 голос
/ 23 мая 2019

Мне нужен коллайдер с криволинейным цилиндром для моей модели криволинейной водопроводной трубы, чтобы красный куб моего игрока мог легко проходить через него.

Я пробовал сетчатый коллайдер, который не работает, а также попробовал другой трюк, в котором я строю 2модели в блендере одна для рендеринга сетки, одна для коллайдера.один в целом, один из девяти блоков, потому что ячеистый коллайдер не работал на одном объекте. Проверьте рис. № 1 и проверьте рис. № 5, где после экспорта обеих моделей в единицу я применил сетчатый коллайдер для всех 9 кусков трубы по отдельности, чтобы получить идеальный результат.Результаты на рисунке №: 5 результатов коллайдера отлично выглядят, но не работают идеально, красная коробка Игрок не может пройти через трубу

Коллайдер не позволяет игроку входить и выходить с другой стороны, как показано на рисунках,Мне нужен идеальный коллайдер для моей кривой трубы, чтобы мой игрок мог легко пройти.На рисунке 1 я показал, что после применения сетки коллайдер результаты.На рис. 2 я показал, что строю свою модель снова, но в 9 чанках, когда выбран один чанк, вы можете видеть, как применить коллайдер сетки ко всем 9 чанкам отдельно, чтобы получить хорошие результаты.На рис. 5 я показал окончательный результат, он выглядит хорошо, но не работающий коллайдер не позволяет моему маленькому игроку с красными ящиками пройти по трубе и пройти через него.На рис 3 я целюсь.На рисунке 4 я выстрелил и показал, что наш игрок не попадает в трубу.

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

1 Ответ

1 голос
/ 23 мая 2019

Эта проблема вызвана тем, что Unity превращает вашу сетку в выпуклую форму, которая удаляет отверстия в трубе.Это также уменьшит количество вершин до 255 треугольников, максимум для выпуклой сетки.Вот почему коллайдер так деформируется на первом изображении.

Здесь есть два основных варианта, потому что трубы имеют по своей природе невыпуклые формы.

  1. Маркаубедитесь, что Convex это не проверено на сетчатом коллайдере и что на трубе нет твердого тела .Затем кубики должны быть в состоянии войти в трубу.Однако это будет означать, что другие MeshColliders не смогут столкнуться с трубкой .Если вы столкнулись только с BoxColliders, SphereColliders или CapsuleColliders и т. Д., Это должно работать нормально.

  2. Разбейте трубки на серию выпуклых формы, и сделайте каждый отдельный MeshCollider.Тогда ваша ситуация должна работать нормально.

Из документации MeshCollider:

Выпуклый - Установите флажок, чтобы включитьВыпуклые.Если включено, этот Mesh Collider сталкивается с другими Mesh Collider.** Выпуклые коллайдеры с сеткой ограничены 255 треугольниками.**

...

Сетка-коллайдеры, для которых не включен Выпуклый , поддерживаются только для GameObjects без Rigidbody компонент.

...