Изменение тональности звука

Есть звук, нужно чтобы при воспроизведении его тональность случайно изменялась условно от -10 до +10 Как это сделать? Или это невозможно и нужны разные звуки?


Ответы (1 шт):

Автор решения: Alemkhan Utepkaliev

В классе AudioSource есть поле pitch, который контролирует тональность звука.

Есть два решения

1. Решение через код:

Для его изменения требуется создать скрипт где будете контролировать воспроизведение звука к примеру скрипт - Audio.cs

Показываю пример на изменение тональности на нажатие кнопки.

Audio.cs

using UnityEngine;

public class Audio : MonoBehaviour
{
    [SerializeField] private AudioSource _UIAudioSource;

    public void PlayUIAudioSource(AudioClip audioClip)
    {
        // назначает аудио для UI Audio Source
        _UIAudioSource.clip = audioClip;

        // базовое значение pitch = 1, следующая строка создаёт случайное значение от 0.8 до 1
        // значение ниже 1 это уменьшение тональности, значение выше 1 это увелечение тональности
        _UIAudioSource.pitch = Random.Range(0.8f, 1);

        // Включает отправленное аудио
        _UIAudioSource.Play();
    }
}

Создаем обьект с компонентом AudioSource называем её UI Audio Source, будем использовать его для кнопок и желательно выключаем PlayOnAwake чтобы аудио не запускались при активации обьекта если там будет аудио, будем это контролировать в коде.

введите сюда описание изображения

Далее создаём пустой обьект и добавляем в него созданный нами Audio.cs с таким же названием, и в поле UI Audio Source выбрасываем созданный до этого обьект с таким компонентом.

введите сюда описание изображения

Теперь на нашей кнопке в событие OnClick() добавляем метод созданный нами в Audio.cs введите сюда описание изображения

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

2. Решение через инспектор в редакторе

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

Для поиска наилучшего варианта, можно менять Pitch через второй способ во время запуска игры, и проверять его звучание, запомнить значение и использовать его при следующем запуске

→ Ссылка