Настройки звука
Класс AudioSettings содержит различные глобальные сведения о звуковой системе, но главное — API, позволяющий сбросить аудиосистему во время выполнения, чтобы изменить такие параметры, как режим динамиков, частота дискретизации (если платформа это поддерживает), размер буфера DSP и число реальных и виртуальных голосов.
Многие из этих настроек можно задать и в разделе Audio настроек проекта. Заданные там значения применяются и в редакторе, и определяют начальное состояние игры, тогда как изменения через API AudioSettings действуют только во время работы игры и при остановке в редакторе сбрасываются к состоянию, заданному в настройках проекта.
Игра может предоставлять меню звуковых опций, в котором пользователь может изменить настройки звука или изменения могут приходить извне в ответ на изменение устройства, такие как подключение внешнего аудио ввода/вывода устройства или даже монитора HDMI, который может также действовать как аудио устройство. AudioConfiguration AudioSettings.GetConfiguration() / bool AudioSettings.Reset(AudioConfiguration config) API может читать и применять глобальные изменения к текущей конфигурации звуковой системы и по сути заменяет функцию AudioSettings.SetDSPBufferSize(…) и AudioSettings.outputSampleRate, AudioSettings.speakerMode, которые имели побочный эффект переинициализации всей аудио системы, когда свойства были изменены.
API определяет AudioSettings.OnAudioConfigurationChanged(bool device) для создания обратного вызова, через который скрипты могут уведомляться об изменениях конфигурации аудио. Эти изменения могут быть вызваны либо фактическими изменениями устройства, либо конфигурацией, инициированной скриптом.
Важно отметить, что при каждом изменении глобальной конфигурации аудиосистемы во время выполнения все аудиообъекты должны быть перезагружены. Для ассетов AudioClip с диска и аудиомикшеров это работает, но любые AudioClip, созданные или изменённые скриптами, теряются и должны быть созданы заново. Точно так же теряется и состояние воспроизведения, поэтому его нужно восстановить в обратном вызове AudioSettings.OnAudioConfigurationChanged(…).
Подробности и примеры см. в справочнике по скриптам API.
AudioSettings