Пересечение коллайдеров

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

Пересечение коллайдеров

Сообщение alexey.terno 25 фев 2021, 21:50

Всем привет!
Как я могу определить пересечение коллайдера конкретного объекта с другими объектами на сцене в Update без использования OnCollisionEnter и OnTriggerEnter?
alexey.terno
UNIт
 
Сообщения: 117
Зарегистрирован: 19 май 2019, 19:07

Re: Пересечение коллайдеров

Сообщение AngryCat 25 фев 2021, 22:10

alexey.terno писал(а):Всем привет!
Как я могу определить пересечение коллайдера конкретного объекта с другими объектами на сцене в Update без использования OnCollisionEnter и OnTriggerEnter?

GetComponent<Collision>().contacts
Здесь могла бы быть ваша реклама.
Аватара пользователя
AngryCat
Старожил
 
Сообщения: 716
Зарегистрирован: 20 июл 2018, 22:29
Skype: Дискорд - Флеш#4099

Re: Пересечение коллайдеров

Сообщение alexey.terno 25 фев 2021, 22:16

AngryCat писал(а):GetComponent<Collision>().contacts

Спасибо!
alexey.terno
UNIт
 
Сообщения: 117
Зарегистрирован: 19 май 2019, 19:07

Re: Пересечение коллайдеров

Сообщение Xtir 25 фев 2021, 23:25

AngryCat писал(а):GetComponent<Collision>().contacts

И это работает? Мне кажется тут где-то ошибка.
Xtir
UNIверсал
 
Сообщения: 498
Зарегистрирован: 21 окт 2016, 00:37

Re: Пересечение коллайдеров

Сообщение alexey.terno 26 фев 2021, 03:03

Xtir писал(а):
AngryCat писал(а):GetComponent<Collision>().contacts

И это работает? Мне кажется тут где-то ошибка.

Неа - не работает )
Поиски решения продолжаются.
alexey.terno
UNIт
 
Сообщения: 117
Зарегистрирован: 19 май 2019, 19:07

Re: Пересечение коллайдеров

Сообщение Saltant 26 фев 2021, 05:46

Рейкасты кидай.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Пересечение коллайдеров

Сообщение Jarico 26 фев 2021, 11:39

Physics.ComputePenetration
Github: _https://github.com/redheadgektor
Discord: Конь! Чаю!#9382 (сижу редко)
YouTube: _https://www.youtube.com/channel/UCPQ04Xpbbw2uGc1gsZtO3HQ
Telegram: _https://t.me/redheadgektor
Аватара пользователя
Jarico
Адепт
 
Сообщения: 1084
Зарегистрирован: 06 янв 2019, 17:37
Откуда: 0xDEAD
Skype: none
  • Сайт

Re: Пересечение коллайдеров

Сообщение Alkos26Rus 26 фев 2021, 14:36

а чем собственно OnCollisionEnter и OnTriggerEnter не устраивает?
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1642
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: Пересечение коллайдеров

Сообщение Saltant 27 фев 2021, 00:18

alexey.terno писал(а):Всем привет!
Как я могу определить пересечение коллайдера конкретного объекта с другими объектами на сцене в Update без использования OnCollisionEnter и OnTriggerEnter?

Можешь чистой математикой считать, я так делал когда нужно было на сервере игры просчитывать попадания пулек, у тебя есть доступ к позиции коллайдеров объекта, ты можешь просчитывать дистанцию между их гранями и если дистанция мелкая то это можно считать за пересечение например.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Пересечение коллайдеров

Сообщение alexey.terno 27 фев 2021, 02:35

Saltant писал(а):Рейкасты кидай.

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

Jarico писал(а):Physics.ComputePenetration

Для этого нужно знать оба коллайдера, а у меня известен только один, второй нужно найти.

Alkos26Rus писал(а):а чем собственно OnCollisionEnter и OnTriggerEnter не устраивает?

Изначально я неправильно использовал эти процедуры и получал некорректный результат. После того, как в OnCollisionEnter я добавил дополнительны проверки, чтобы отфильтровать ненужные коллайдеры, я получил ожидаемый результат. Так что я возвращаюсь к этим двум процедурам )

Saltant писал(а):Можешь чистой математикой считать, я так делал когда нужно было на сервере игры просчитывать попадания пулек, у тебя есть доступ к позиции коллайдеров объекта, ты можешь просчитывать дистанцию между их гранями и если дистанция мелкая то это можно считать за пересечение например.

Могу, но для этого мне нужно знать второй коллайдер, а без процедур OnCollisionEnter и OnTriggerEnter я их получить не мог.
alexey.terno
UNIт
 
Сообщения: 117
Зарегистрирован: 19 май 2019, 19:07

Re: Пересечение коллайдеров

Сообщение Saltant 27 фев 2021, 07:49

alexey.terno писал(а):Могу, но для этого мне нужно знать второй коллайдер, а без процедур OnCollisionEnter и OnTriggerEnter я их получить не мог.

Как такое может быть? Ты не знаешь какие объекты у тебя есть в игре и пересечение с какими ты ожидаешь?
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Пересечение коллайдеров

Сообщение alexey.terno 28 фев 2021, 06:05

Saltant писал(а):Как такое может быть? Ты не знаешь какие объекты у тебя есть в игре и пересечение с какими ты ожидаешь?

Знаю, но этих объектов очень много и я не буду перебирать их все, чтобы определить пересекается ли мой коллайдер с другими коллайдерами на сцене.
На сегодняшний день я решил свою проблему правильным применением процедур OnTriggerEnter и OnTriggerExit - пока я получаю ожидаемый результат и он меня устраивает )
alexey.terno
UNIт
 
Сообщения: 117
Зарегистрирован: 19 май 2019, 19:07

Re: Пересечение коллайдеров

Сообщение Saltant 28 фев 2021, 07:27

alexey.terno писал(а):
Saltant писал(а):OnTriggerEnter и OnTriggerExit - пока я получаю ожидаемый результат и он меня устраивает )

Эти методы и были сделаны для этого, держу в курсе просто. Не понимаю чего тебя торкнуло изобретать чего то не изобретаемое если ты работаешь с юнити, я бы понял если бы тебе нужно было считать пересечения векторов ВНЕ юнити, то это чистая математика, но в юнити для тебя сделали методы которые срабатывают на уровне движка. Почитай документацию, посмотри видеоуроки для новичков, там все эти начальные моменты обсуждают и показывают, будешь о них знать - проблем таких не будет.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Пересечение коллайдеров

Сообщение alexey.terno 01 мар 2021, 00:31

Saltant писал(а):Не понимаю чего тебя торкнуло изобретать чего то не изобретаемое если ты работаешь с юнити...

Исключительно малый опыт работы с Юнити и кривые руки )))
alexey.terno
UNIт
 
Сообщения: 117
Зарегистрирован: 19 май 2019, 19:07

Re: Пересечение коллайдеров

Сообщение neopaul7 22 ноя 2023, 21:35

Тестируй не самим объектом а его копией с тригерным коллайдером - потом эту копию удали из сцены. Порой не удобно добавлять Rigidbody оригинальному тестируемуму объекту - а тестовой болванке легко, но нужно её развернуть правильно и спозиционировать. Поэтому можно заказать у юнити клон сделать во время выполнения
Аватара пользователя
neopaul7
UNец
 
Сообщения: 1
Зарегистрирован: 22 ноя 2023, 21:27


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 25