Как заставить террейн выталкивать объекты как замкнутый меш?

Общие вопросы о Unity3D

Как заставить террейн выталкивать объекты как замкнутый меш?

Сообщение Инженер 08 янв 2021, 19:13

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

Игрок может кидать землю с лопаты и в месте, куда упал кусок грунта, вырастает холмик. Это делается резко, за 1 кадр, поэтому если рядом что-то лежало физичное, оно может провалиться, оказавшись под землей. А мне надо, чтобы оно выталкивалось на поверхность.

Просто конвертировать террейн в меш мне не подходит.
Инженер
UNIт
 
Сообщения: 88
Зарегистрирован: 22 май 2016, 11:13

Re: Как заставить террейн выталкивать объекты как замкнутый меш?

Сообщение Инженер 14 янв 2021, 12:27

Все, я нашел сам. Функция Physics.ComputePenetration позволит определить глубину залегания и вектор, в котором проще всего вытягивать объект из грунта. С террейном метод работает так, что если центр объекта погружен в грунт, то метод перестает работать (вероятно, потому что обратная сторона нормали не учитывается как препятствие), поэтому тут уже поможет Terrain.SampleHeight
Инженер
UNIт
 
Сообщения: 88
Зарегистрирован: 22 май 2016, 11:13


Вернуться в Общие вопросы

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9