Проблема нахождения скорости при столкновении объектов в unity 3d
Исправлено: скорость вычислял при помощи
OnCollisionEnter(Collision col)
{
damage =col.relativeVelocity.magnitude;
}
Проблема решение которой я даже представить не могу. В общем мне нужно найти скорость столкновения объекта. У персонажа в скрипте системы жизни прописано: если скорость столкновения больше 5, то отнимает хп пропорционально скорости столкновения. Проблема в том, что OnCollisionEnter срабатывает при столкновении, а лишь после того как он срабатывает происходит операция вычисления скорости. И за это время персонаж теряет всю скорость. Порядок таков: срабатывает OnCollisionEnter, персонаж теряет скорость, вычисление скорости. Так как персонаж потерял всю скорость, урона ему не наносится. Способ работает в нескольких случаях: если персонаж упал на наклонную поверхность, ведь OnCollisionEnter срабатывает постоянно, персонаж не успевает потерять скорость, и урон наносится корректно. И второй случай, это когда персонаж бежав по земле врезался во что то. Система та же что и с наклонными поверхностями: находясь на земле OnCollisionEnter срабатывает постоянно, персонаж не теряет скорость мгновенно, и урон наносится корректно. Есть ли способы это исправить?