Задать вопрос
@ShelkovyyBanshee

Как отключить столкновения динамических объектов в topdown игре на Unity?

Я начинающий в юнити. Пытаюсь сделать topdown 2D игру. Игрока и врагов двигаю через скрипт с помощь rb.MovePosition. RigidBody2D у врагов и игрока выставлен Dynamic, у стен и прочего - Static. Я хочу, чтобы игрок и враги не проходили сквозь стены и желательно не проходили сквозь друг друга. Но выходит так, что игрок и враги при коллизии толкают друг друга, унося далеко за пределы экрана. То есть тот, кто двигался, толкает того, кто стоял. Как сделать так, чтобы они не толкались? И чтобы без использования слоёв, а то я тогда не представляю при моих нынешних знаниях, как атаку обрабатывать.
  • Вопрос задан
  • 740 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
@ShelkovyyBanshee Автор вопроса
В общем как раз месяц прошёл. Я очень много изучил, испробовал. И нашёл нормальное решение. Вот сейчас решил написать.
Надо было обратить внимание на параметр "Layer" (он в одной строчке с "Tag"). У игрока и врагов надо выбрать один Layer (можно и разные, это неважно, ниже напишу, почему), а у стен другой Layer.
После Edit -> Project Settings -> Phisics2D и там самом низу будет таблица, где в строками и столбцами будут наши Layer-ы, а на пересечении будут поля для галочек. Если галочка стоит - то слои в строки и столбце взаимодействуют при помощи коллайдеров. Можно настроить и взаимодействие объектов одного слоя, поэтому я и сказал, что враг и игрок могут быть на одном.
Хотя тут важный нюанс. У меня у врага и игрока есть коллайдер на главном (для стен) и дочерний объект с коллайдером и скриптом (hurtbox для получения урона), плюс скрипт на главном объекте для hitboxa (для атаки). И в моём случае у hurtbox выставлен свой слой, потому что по нему hurtbox отслеживают заинтересованные его задамажить. Если же урон игрок получает через тот же коллайдер, которым он об стены стукается, то надо уже игроку и врагам свои слои выставлять, отдельные.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы