Проверка коллизий между объектами

177
08 июня 2018, 18:50

имеется два объекта (игрок и враг, находятся каждый на своем слое, висят коллайдеры и ригидбоди2Д, используется стандартная физика Юнити, игра в 2D). В настройках матрицы коллизий отключил между этими слоями столкновения, чтобы объекты могли проходить сквозь друг друга. Но как обычно бывает в 2Д играх, при прикосновении игрока с врагом нужно чтобы игрок получал урон и отлетал от врага. Далее включается кратковременная неуязвимость и персонаж может спокойно проходить между такими врагами (именно поэтому отключены столкновения). Так как в матрице коллизий столкновения отключены, такие события как OnCollisionEnter, OnTriggerEnter не срабатывают. В голове имеется мысль использовать Physics2D.OverlapCapsule (так как коллайдеры стоят капсульные на объектах) в апдейте или в фикседапдейте, но вот не знаю как это повлияет на производительность. В Юнити новичок, так что прошу тапками сильно не кидайте =) Если есть какие-то способы сделать это проще буду рад их услышать. Заранее спасибо =)

Answer 1

У коллайдров есть возможность вести себя как триггеры. Обзор коллайдров В этом режиме, они не создают препятствий, но по прежнему вызывают события физики OnTriggerEnter и прочее.

Answer 2

Самым легким решением в плане производительности будет использование Raycast. Производя Raycast, вы можете указать маску физических слоев, на которые будет реагировать луч. В Вашем случае их наверно придется отбрасывать несколько в разные стороны (но это не сильно скажется на производительности).

READ ALSO
Как отметить первый элемент в списке (Windows Forms)

Как отметить первый элемент в списке (Windows Forms)

Для того чтобы автоматически выбрать первый элемент в списке можно исполжьзовать

179
связи таблиц в mysql

связи таблиц в mysql

На ERD-диаграмме часть схемы моей бд

306
загрузка данных из файла

загрузка данных из файла

У меня mySql 80, я создал базу данных через консоль на локальном компьютере, создал таблицу, пытаюсь записать данные из файла тоже через консоль...

216