Любая созданная игра всегда наполнена различными звуковыми эффектами. Звуки ходьбы персонажа, стрельбы, лечения, и так далее. Всё это неотъемлемая часть при разработки игр.
Воспроизведение звуковых эффектов можно условно разделить на 2 вида:
- Звуковой эффект, который воспроизводится СРАЗУ, после создания объекта в игровой сцене. Например при стрельбе мы создаём новый объект пули, и сразу после создания объекта пули, воспроизводится звуковой эффект выстрела.
- Звуковой эффект, который воспроизводится специальным методом из скрипта. К этому варианту относят звуки от передвижения персонажа, перезарядки, прыжка, и так далее.
Предлагаю разобрать эти два метода на реальных примерах. Начнём первого, самого простого вида.
Воспроизведение звукового эффекта от создания объекта
Приведём пример, как же создавать звуковые эффекты на примере выстрела, при котором на игровой сцене создаётся новый игровой объект в виде пули. И первым делом, конечно же, необходимо добавить в окно Project звук выстрела. Я дал ему название shot.

Далее необходимо выбрать префаб нашей пули, и добавить в него компонент Audio Source. После добавления данного компонента, необходимо обратить внимание следующие два поля:

В поле AudioClip необходимо перетащить звуковой эффект выстрела из окна Project. А в поле Play On Awake нужно поставить галочку для того, чтобы звук выстрела воспроизводился сразу после того, как пуля появится на игровой сцене.
Впринципе на этом всё. Как только произойдёт выстрел, и пуля появится на игровой сцене, будет воспроизведён звук выстрела.
Вызов звукового эффекта из скрипта
Рассмотрим простой пример, на примере ходьбы персонажа. Для начала нам необходимо скачать звук ходьбы в интернете, и перетащить этот аудиофайл в окно Project. Название моего файла run.

Теперь для нашего персонажа создадим компонент Audio Source. После создания данного компонента, обратите внимание на три поля:

В поле AudioClip необходимо перетащить звук шагов из окна Project. В поле Play On Awake должна отсутствовать галочка, чтобы звук шагов не воспроизводился сразу после запуска игры, ведь запускать звук шагов мы будем через скрипт в тот момент, когда необходимо. Для этого создадим C# скрипт с названием, например, SoundRun.
Пропишем в созданном скрипте следующее:
using UnityEngine;
public class SoundRun : MonoBehaviour
{
public AudioSource moveSound;
void Update()
{
if (Mathf.Abs(Input.GetAxis("Horizontal")) > 0.35f && Mathf.Abs(Input.GetAxis("Vertical")) > 0.35f)
{
if (moveSound.isPlaying) return;
moveSound.Play();
}
else
{
moveSound.Stop();
}
}
}
В первой строке мы объявили переменную moveSound, в которой будет храниться ссылка на компонент AudioSource. Поэтому не забудьте в окне Inspector перетащить компонент Audio Source в поле moveSound.

В строке #9 мы проверяем, происходит ли движение игрока. Если да, то с помощью метода Play() воспроизводим звук шагов. А если нет, то с помощью метода Stop() принудительно этот звук останавливаем.
Так же обратите внимание, что в строке #11 перед воспроизведением звука, мы проверяем, воспроизведён ли он в данный момент времени. Если да, то оставляем всё как есть. А если нет, то воспроизводим его.
В принципе на этом всё. По желанию можете ознакомится со всеми свойствами и методами компонента(класса) AudioSource.
Если статья была полезной, жду Ваши лайки :)