Поездка на двоих была выпущена некоторое время назад, и мы с моим партнером чуть не сошли с ума.
Пока субъект спит, давайте быстренько разберем звуковую систему этой игры.
В настройке звуковых эффектов «Два человека в очереди» все звуки разделены на две части:
И добавлена опция «Основная громкость» для управления громкостью этих двух звуков.
Когда мы работаем над проектами, мы часто сталкиваемся с необходимостью контролировать громкость. Самый простой метод — найти источник звука, которым нужно управлять, и регулировать громкость один за другим.
Это проще всего понять, но по мере появления различных типов AudioSources управление будет становиться все более громоздким. Тогда давайте сегодня представим наш встроенный инструмент Unity: Audio Mixer. Давайте посмотрим, сможете ли вы легко управлять звуковыми эффектами проекта и элегантно писать код.
Мы видим интерфейс настроек для двух человек подряд, который делит звуковые эффекты на:
Мы можем разделить его на следующие основные части:
Итак, можем ли мы иметь мощные инструменты для выполнения следующих функций:
Мы хотим реализовать вышеуказанную функцию и надеемся, что верхний уровень будет контролировать нижний уровень. Контролируйте слой за слоем.
Разве эта древовидная диаграмма, нисходящая классификация и иерархический контроль не являются хорошим решением? Давайте взглянем на AudioMixer, наконец созданный на основе этой идеи:
MasterMixer,Является родительским узлом для всех групп звуковых эффектов.,Мы можем контролировать это по громкости,Для достижения эффекта управления глобальным объемом. то есть все звуковые эффекты,контролируются всеми родительскими узлами выше себя,Похоже на: Unityизтрансформация.
TalkMixer,Это группа звуковых эффектов диалога.,Под MasterMixer,Управляется MasterMixerиз.
MusicMixer,Это музыкальная группа,Мы видим, что в группах ниже много звуковых эффектов.,Верхним родительским объектом звукового эффекта является Master. Это означает, что мы можем контролировать размер каждого звукового эффекта индивидуально.,Вы также можете управлять общей громкостью,Для управления громкостью этой группы.
Теперь давайте на самом деле сделаем это, как достичь цели управления звуковыми эффектами проекта с помощью такой конфигурации.
Вы также можете добавить vx в конце статьи, чтобы получить исходный код проекта.
Импортируйте наши музыкальные ресурсы. Мы загрузим и поиграем в Ресурсы позже.
Мы видим, что MasterMixer, MusicMixer и TalkMixer на рисунке выше — это три AudioMixer, которые можно создать, щелкнув правой кнопкой мыши в «Ресурсах».
1️⃣Создайте AudioMixer:
Как AudioMixer выглядит в Assets:
2️⃣Отрегулируйте положение узла После того, как мы создадим его в Assets, MasterMixer станет корневым узлом, и нам нужно использовать оставшиеся два в качестве его дочерних узлов.
3️⃣Добавьте звуковые эффекты в группах. Выбираем MusicMixer, мы добавим к нему звуковые эффекты, обратите внимание на положение узла!
После того, как аудиомикшер создан, кодом пока нельзя управлять напрямую.
Как и в случае с нашим конечным автоматом анимации, нам нужно знать имя MusicMixer внутри, прежде чем мы сможем найти его с помощью кода и управлять им.
MusicMixer:
Поскольку мы хотим контролировать только основные звуковые эффекты, громкость диалогов и громкость музыки, Поэтому нам нужно только установить параметры трех групп звуковых эффектов: MasterMixer, MusicMixer и TalkMixer. Возьмем MasterMixer в качестве примера:
Две другие операции аналогичны завершению экспонирования параметров.
То есть в проекте создайте AudioSource для этих основных звуков, Позже на этих аудиоисточниках воспроизводятся звуки соответствующих категорий.
Как использовать аудиомикшер:
1️⃣Создайте базовый источник воспроизведения звука.
Потому что мы разделили все звуки на пять частей: звуки диалогов, фоновая музыка... Поэтому мы создаем 5 аудиоисточников, а затем используем эти разные аудиоисточники для воспроизведения соответствующей музыки.
Отмените все PlayOnAwake и отмените цикл. Фоновую музыку необходимо проверить Loop Эффект пользовательского интерфейса следующий:
2️⃣Задание соответствует MusicMixer
В разделе «Ресурсы» ниже перенесено только что созданное нами MusicMixer. Просто перетащите их в соответствующее место.
Эффект такой, как показано ниже:
Следующий код используется для присвоения значения кнопке слева, при нажатии которой воспроизводится звуковой эффект.
using UnityEngine;
using UnityEngine.UI;
public class AudioPlayCon : MonoBehaviour
{
//Назначение создаём изAudioSource
public AudioSource[] audioSources;
//Назначение создаём изBtn
public Button[] audioBtn;
void Start()
{
audioBtn[0].onClick.AddListener(() =>
{
audioSources[0].clip ??= Resources.Load<AudioClip>("myTalkMusic");
audioSources[0].Play();
});
audioBtn[1].onClick.AddListener(() =>
{
audioSources[1].clip ??= Resources.Load<AudioClip>("myBackgroundMusic");
audioSources[1].Play();
});
audioBtn[2].onClick.AddListener(() =>
{
audioSources[2].clip ??= Resources.Load<AudioClip>("myUIMusic");
audioSources[2].Play();
});
audioBtn[3].onClick.AddListener(() =>
{
audioSources[3].clip ??= Resources.Load<AudioClip>("myEntityMusic");
audioSources[3].Play();
});
audioBtn[4].onClick.AddListener(() =>
{
audioSources[4].clip ??= Resources.Load<AudioClip>("myAnimalMusic");
audioSources[4].Play();
});
}
}
Теперь запускаем игру, нажимаем кнопку слева, и вы должны услышать звук.
Итак, далее мы настраиваем код для ползунка выше, чтобы добиться эффекта перетаскивания ползунка и изменения громкости.
Наш ползунок предназначен для управления «динамиком» Audio Mixer. Введите параметры и значения, которыми нужно управлять. Достичь эффекта управления звуковыми эффектами.
using UnityEngine;
using UnityEngine.Audio;
public class MixerCon : MonoBehaviour
{
public AudioMixer masterMixer;
public AudioMixer musicMixer;
public AudioMixer talkMixer;
//Функция ниже использует динамический метод float, присвойте значение нашему слайдеру
// Управление общей громкостью
public void SetMasterMixerVolume(float volume)
{
// MasterVolume предоставляет нам параметры MasterVolume.
masterMixer.SetFloat("MasterMixer", volume);
}
// Контролируйте громкость речи
public void SetTalkMixerlume(float volume)
{
talkMixer.SetFloat("TalkMixer",volume);
}
// контрольгромкость музыки
public void SetMusicMixerVolume(float volume)
{
musicMixer.SetFloat("MusicMixer", volume);
}
}
Поскольку мы видим, что звуковой порог MusicMixer находится в пределах -80-20 децибел, Поэтому мы устанавливаем MinValue и MaxValue ползунка на -80 и 20.
Часть создания AudioMixer:
Часть воспроизведения пользовательского интерфейса:
Часть управления слайдером: 1. Контролируется громкость каждого AudioMixer, которую можно использовать для управления размером различных типов музыки в проекте. 2. Дочерний узел AudioMixer управляется родительским узлом AudioMixer. Из-за наших отношений перетаскивания все остальные AudioMixer являются дочерними узлами MasterMixer, поэтому MasterMixer может управлять глобальной громкостью. Код управления:
masterMixer.SetFloat("MasterMixer", volume);
Эта статья служит 《GameFramework》 Базовые знания фреймворка, Если вы хотите улучшить себя и изучить фреймворк Unity, вы можете узнать об этом. 《GameFramework》 ~