Разрушающиеся столкновения для объекта Unity 2D - PullRequest
0 голосов
/ 21 апреля 2020

В данный момент я программирую игру Unity 2D. Когда игра запущена, машины начинают двигаться и постоянно возрождаются. Мяч будет использоваться, чтобы бросить его против автомобилей. Я использовал Box Collider, чтобы дать машинам основу для вождения, но теперь мяч не может попасть на полосу снизу, потому что он заблокирован верхней полосой.

Я хочу отключить столкновение между моим мячом и другими игровыми объектами, чтобы можно было различать дорожки, но я не знаю как? Я надеялся, что смогу дифференцировать его по слоям, но не смог решить мою проблему. У кого-нибудь из вас есть идея, как решить мою проблему. Я приложу картинку, чтобы вы лучше поняли мою проблему. Пример сцены

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

В описании вы утверждаете, что ваш объект использует Box Collider ... для 2D, вы бы предпочли использовать BoxCollider2D.

. Как уже упоминалось, вы можете отключить конфликт между двумя указанными * 1037. * Слои через EditProject SettingsPhysics 2D Матрица столкновения слоев

enter image description here

Вы также можете ( и это также может быть вам интересно) отключите столкновения между объектами одного и того же слоя здесь.

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


В качестве альтернативы вы также можете сделать то же самое во время выполнения, используя Physics2D.IgnoreLayerCollision и, например, также временно включить и отключить эти столкновения

Physics2D.IgnoreLayerCollision(layer1Index, layer2Index, ignore);

или даже игнорировать только столкновения между двумя указанными c коллайдерами, используя Physics2D.IgnoreCollision

 Physics2D.IgnoreCollision(objectA.GetComponent<Collider2D>(), objectB.GetComponent<Collider2D>(), ignore);

, где ignore - bool.

0 голосов
/ 21 апреля 2020

Поместите шарик в другой слой (скажем, слой с именем «Ball»), а дорожку - в другой слой (скажем, слой с именем «Lanes»). Затем go для Edit-> Project Settings, нажмите на Physics 2D и снимите флажок, который пересекает слой Ball со слоем Lanes. Это предотвратит столкновения между предметами на 2 слоях.

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