Обещал подробно объяснить - держу слово. Сейчас система столкновений и сброса множителя устроена так.
Сила удара считается по потере скорости. Берём разницу между скоростью в момент касания и сразу после неё, измеряем в метрах в секунду. Чем больше эта разница, тем выше класс удара. Формула одна: deltaSpeed = скорость до − скорость после. Никакой магии, только школьная физика.
Light: 0 - 5 м/с. Множитель падает на 35 %. Дрифт не прерывается. Лёгкий толчок почти без последствий - ошибся и продолжай.
Medium: 5 - 8 м/с. Множитель уменьшается на 65 %. Текущий дрифт обнуляется. Удар уже чувствуется: прогресс теряется, но не весь.
Strong: 8 м/с и выше. Множитель возвращается к 1, дрифт сброшен. Серьёзная ошибка - всё начинается заново.
Мелкие задевания прощаются. Чем тяжелее ошибка, тем строже штраф. Цель по-прежнему - чистое вождение, но без лишнего раздражения. Система не смотрит на стабильность дрифта: если фиксируется удар, он засчитывается.
Столкновения с PropReward (коллектаблы) не считается ударом, штрафа нет. Интерфейс реагирует тряской, сила толчка задаёт интенсивность. Все пороги и проценты хранятся в CollisionImpactService.Settings - баланс правится без изменения кода.
#RacingHeartDev #Unity #Game #Drift
Post #82
67
- 👍 5
- 🔥 3
- ❤ 1