Как избежать краевых столкновений в физике на основе тайлов (физика Unity2D)? - PullRequest
1 голос
/ 03 февраля 2020

Я работаю над 2D боковой прокруткой основанной на физике игре .

Карты для этой игры создаются по плитке На основе системы , которая читает из текстового файла, и в игре создаются блоки для прорисовки уровня. Некоторые объекты, использующие гравитацию физики, должны "скользить" по участкам нескольких блоков, помещенных вместе (например, полы, но построенные из разных блоков из-за системы на основе плиток).

Несмотря на то, что блоки размещаются «математически» ровно один за другим, потому что каждый блок имеет свой собственный BoxCollider2D, физический движок по-прежнему обнаруживает «край» иногда , и объект, который должен скользить по кратному блок-секция (которая также имеет BoxCollider2D плюс RigidBody2D) просто безумно отскакивает от поверхности (я полагаю, из-за столкновения ребер / ребер).

Я пытался добавить небольшой радиус ребра, но это на самом деле не работает. Есть ли способ, которым я мог бы легко "связать" эти секции блока вместе , или "сгладить" края таким образом, чтобы физический движок не понял, что они там?

Я прилагаю 4 изображения, чтобы сделать все более понятным и понятным:

  1. Свойства инспектора блока этажей BoxCollider2D.
  2. Свойства движущегося объекта BoxCollider2D и RigidBody2D.
  3. Снимок экрана игры (движущийся объект, стоящий на "полу", образованном различными независимыми блоками; обратите внимание, что спрайт закруглен с помощью BoxCollider2D, прикрепленного к объекту нет).
  4. Снимок экрана игры включен редактор, с выделенными различными блоками, чтобы показать, как их боксы BoxCollider2D (предположительно) перекрываются, что не должно оставлять края для столкновения движущегося объекта.

Заранее спасибо!

Floor block BoxCollider2D inspector properties Moving object BoxCollider2D and RigidBody2D properties. Game screenshot (moving object standing on a Game screenshot on editor, with various blocks highlighted to show how their BoxCollider2D boxes (supposedly) overlap, which shouldn't leave any edge for the moving object to collide with.

...