Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Все Гайды Мой Кабинет

Добавление звуков ходьбы в Unity

Как известно, любое действие в игре сопровождается звуковыми эффектами. И звуки при движении игрока не исключение. В данной статье мы научимся добавлять звуки при ходьбе персонажа.

Мы не будем рассматривать реализацию самой ходьбы, а рассмотрим только воспроизведение звука ходьбы, в момент ходьбы. Но если по какой-либо причине Вы ещё не создали в своей игре движение игрока, то сначала предлагаем изучить гайд по реализации движения персонажа.

А теперь перейдём непосредственно к теме данной статьи. Для начала нам необходимо скачать звук ходьбы в интернете, и перетащить этот аудиофайл в окно Project. Так же можете переименовать данный файл на своё усмотрение. У меня он переименован в run.

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

В поле AudioClip перетащите свой аудиофайл шагов из окна Project. В поле Play On Awake необходимо убрать галочку, чтобы наши шаги не воспроизводились сразу же, после запуска игры. Мы их сами будем воспроизводить в скрипте. А в поле Loop необходимо галочку всё же поставить, чтобы по завершению звукового файла, он воспроизводился снова и снова.

Остался последний штрих. Нам необходимо с помощью кода воспроизводить звук шагов, которые подгружены в компонент Audio Source в тот момент, когда персонаж идёт, и останавливать этот звук, когда персонаж не идёт. Для этого создадим новый скрипт 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 у нас есть ещё одна проверка на то, воспроизводится ли звук шагов в данный момент? Если да, то ничего не делаем, поскольку так и надо. А если нет, то начинаем воспроизведение звука.

Важно: Чтобы не создавать множество скриптов, Вы можете скрипт SoundRun не создавать, а скопировать данный код в ваш скрипт, который отвечает за передвижение персонажа. Так будет более правильно.

Если после данной статьи, Вы захотели пойти дальше, и реализовать звук стрельбы, то это делается немного по другому, чем реализация звуков шагов. Спешу Вас обрадовать, это делается на много проще. О том, как добавить звук стрельбы в игру, мы писали в отдельной статье. Так что рекомендуем к прочтению.

На этом всё. Если остались вопросы, пишите в комментариях. А так же не забываем ставить алйки :)

Вы можете отблагодарить автора донатом. ₽ Спасибо

Комментарии

2
Name_433 1 год назад

Я вместо && поставил || , так как звук ходьбы работал только при диагональных движениях (ведь стоит оператор && (И), а при постановке ||(оператор ИЛИ) все хорошо работает)

1234 8 месяцев назад

Я что то не очень понял насчет 11 строчки и, что делать если звук не воспроизводится.

Гости не могут оставлять комментарии. Войдите на Сайт или Зарегистрируйтесь