Физика высоких скоростей - всегда крепкий орешек. Как упоминает Игги, вы можете / должны использовать непрерывное обнаружение столкновений.
Если у вас все еще есть проблемы, и вы все еще хотите быстрые снаряды, становится сложнее. Вот несколько вариантов.
Вы можете уменьшить временной шаг физики в настройках времени (очень дорого, не рекомендуется, но вы можете проверить).
Вы можете динамически увеличивать коллайдеры пули. (Может быть самым простым решением). Когда вы создаете пули, рассчитывайте на основе их скорости, какой длины должен быть коллайдер коробки, и динамически размещайте его позади пули, как след (убедитесь, что пуля продвинулась вперед достаточно, чтобы полностью расшириться, чтобы вы не попали в предметы позади игрока. ). Размер коллайдера коробки должен быть таким же, как расстояние, на которое он перемещается за каждый кадр. Таким образом, после перемещения тонны в кадре все позиции, в которых находилась пуля в кадре, вызовут столкновение на коллайдере бокса. Для удара пули и sfx они не порождаются там, где находится пуля, а в точке контакта.
Вы можете рассчитать, должно ли произошло столкновение. (После обновления физики проверьте за снарядом как с raycast).
Вы можете сделать свою физику или гибрид. Unity позволяет моделировать физику в любое время вручную вместо обычного обновления физики. Имея больший контроль над этим, вы можете добавить больше вычислений для быстро движущегося объекта.