@JimFord
Разработчик

Как сделать свист пули рядом с игроком в движке Unity?

Задача: добиться эффекта свиста пули, пролетающей рядом с игроком (мимо него) на определенном расстоянии, в игре с видом от первого лица. У пули нет коллайдера (объект посылает лучи, которые фиксируют столкновение с чем либо). При этом сама стрельба происходит не лучом, пуля, которой выстрелили движется по рассчитанной траектории - т.е., это именно объект.

Примеры эффекта свиста пролетающей пули, о котором я говорю, можно слышать в COD Warzone, Arma 3, Escape frome Tarkov. Речь не о звуковом эффекте, который является частью impact - когда звук попадания в поверхность, просто заменяется или плюсуется со звуком свиста. Как я понимаю, это именно пролетающий мимо объект, который может "пробить" какую-либо поверхность метрах в 200 от игрока и он звука соприкосновения пули и поверхности не услышит.

Попытка просто приделать к пуле Audio Source со звуком свиста пули дает странные результаты: звук сильно искажается и не всегда работает. Выглядит так, будто у Unity есть проблемы с озвучиванием настолько быстрых объектов таким способом.

Я слышал еще про два способа:
1. происходит расчет дистанции от выпущенной пули до игрока и когда дистанция сокращается до определенного значения, источник звука, повешенный на игрока, а не на пулю срабатывает и игрок слышит свист пули.
2. на игрока повешен SphereCast, который учитывает момент, когда пуля с ним столкнулась\вошла в него (например , используя систему тэгов) - опять же в этот момент срабатывает источник звука на игроке.

Не вполне понимаю, как это можно реализовать, пока все попытки неудачные. Или может быть есть еще какой-то более простой\надежный способ решить проблему?

Вот тут видео, поясняющее о чем я говорю: https://www.youtube.com/watch?v=VTuuOiWgVZ0&featur...
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы