Определение силы столкновения

Физика в Unity

Определение силы столкновения

Сообщение 99kiri99 06 мар 2012, 19:16

Мне нужно воспроизвести анимацию падения, когда игрок ударяется о землю после падения с большой высоты.
Я использую CharacterController.
Как можно это организовать ?

Заранее спасибо за помощь! :)
99kiri99
UNец
 
Сообщения: 7
Зарегистрирован: 05 май 2011, 16:06
Откуда: Пермь

Re: Определение силы столкновения

Сообщение AndreyMust19 06 мар 2012, 19:53

Чтобы найти скорость, проверьте CharacterController.velocity (это вектор текущей скорости) в момент перехода isGrounded из false в true. Если вдруг вектор оказывается нулевым (откуда мне знать, сам еще не пробывал), то запоминайте CharacterController.velocity за несколько (3-5) кадров в массив, а потом берите самое большое значение.

Чтобы превратить скорость в ускорение, делим полученную скорость на Time.deltaTime в методе Update. Затем умножаем ускорение на собственную массу и вот получается сила, к-ю оказал ваш персонаж на землю при приземлении. Поскольку земля после столкновения с места не сдвинулась, то и земля оказала на персонажа такую же силу.

Анимацию падения нужно воспроизводить прямо в воздухе. Чтобы вычислить скорость воспроизведения анимации (при условии что в момент приземления она должна закончиться), нужно знать расстояние до земли. Я для этого использую испускание лучей по оси Vector.down и измерение длины луча при столкновении. Время, оставшееся до приземления вычисляю по формуле:
float t = Math.Sqrt(h / g); // g = 9,81f

Разумеется, платформа может отдаляться, приближаться, так что луч придется испускать еще неск. раз через определенные промежутки.

Анимацию приземления лучше воспроизводить не при контакте с землей, а за ~0.5 секунд до столкновения.
Нужна помощь? Сами, сами, сами, сами, сами... делаем все сами
AndreyMust19
Адепт
 
Сообщения: 1119
Зарегистрирован: 07 июн 2011, 13:19

Re: Определение силы столкновения

Сообщение 99kiri99 06 мар 2012, 20:17

Благодарю за столь исчерпывающий ответ. :-bd
99kiri99
UNец
 
Сообщения: 7
Зарегистрирован: 05 май 2011, 16:06
Откуда: Пермь


Вернуться в PhysX

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

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