Описание
Это примечания, о которых следует помнить при обновлении проектов с Unity 4 до Unity 5, если в вашем проекте используются аудиофункции.
Аудиоклипы
В AudioClip многое изменилось. Во-первых, на ассете больше нет 3D-флажка. Этот флаг был перемещен в AudioSource в форме ползунка Spatial Blend, позволяющего во время выполнения преобразовывать звуки из 2D в 3D. Старые проекты будут импортированы таким образом, что AudioSource на GameObjectsфундаментальный объект в сценах Unity, который может представлять персонажей, реквизит, пейзажи, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь в sceneСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь, что назначенный клип получит Параметр Spatial Blend настроен в соответствии со старым флагом 3D AudioClip. По понятным причинам это невозможно для скриптовфрагмент кода, позволяющий создавать собственные Компоненты, запускать игровые события, изменять Свойства компонента с течением времени и реагировать на ввод пользователя любым удобным для вас способом. Подробнее
Посмотрите в Словарь, где клипы динамически назначаются источникам, так что это требует исправления вручную.
Хотя значение по умолчанию для старого 3D-свойства было true, по умолчанию в новой системе для параметра Spatial Blend по умолчанию установлено значение 2D.
Наконец, аудиоклипы теперь можно редактировать одновременно.
Формат
Название свойства Format было изменено, чтобы оно отражало способ хранения данных, а не конкретный формат файла, который отличается от платформы к платформе. Таким образом, с этого момента «Несжатый» относится к необработанным образцам данных, «Сжатый» — к сжатию с потерямиметоду хранения данных, который уменьшает объем требуемое место для хранения. См. Сжатие текстур, Сжатие анимации, Сжатие звука, Сжатие компоновки.
См. в Словарь метод лучше всего подходит для платформы, а ADPCM относится к облегченному ( с точки зрения ЦП) метод сжатия, который лучше всего подходит для естественных аудиосигналов, которые содержат значительное количество шума (шаги, удары, оружие и т. д.) и должны воспроизводиться в большом количестве.
Предварительная загрузка и загрузка аудиоданных в фоновом режиме
Новая функция AudioClips заключается в том, что они обеспечивают поддержку параметра для определения необходимости предварительной загрузки аудиоданных или нет. Любое свойство AudioClip отделено от фактического состояния загрузки аудиоданных и может быть запрошено в любое время, поэтому возможность загрузки по запросу теперь помогает поддерживать низкий уровень использования памяти AudioClips. В дополнение к этому AudioClips могут загружать свои аудиоданные в фоновом режиме, не блокируя основной поток игры и не вызывая потери кадров. Конечно, процессом загрузки можно управлять с помощью API сценариев.
Мультиредактирование
Все аудиоклипы теперь поддерживают мультиредактирование.
Принудительно моно
Функция Force To Mono теперь выполняет нормализацию пиков результирующего даунмикса.
Получить данные/установить данные
Эти вызовы API поддерживаются только клипами, которые либо хранят аудиоданные без сжатия в формате PCM, либо выполняют распаковку при загрузке. В прошлом это поддерживалось большим количеством клипов, но закономерность была не очень ясной, поскольку это зависело как от целевой платформы, так и в редакторе и автономных проигрывателях. В качестве новинки файлы трекера можно также распаковывать в память как данные PCM, поэтому для них также можно использовать GetData/SetData.
Поведение AudioSource при паузе
Пауза в Unity5 теперь согласована между вызовами Play и вызовами PlayOneShots. Приостановка AudioSource приостанавливает воспроизведение голосов в обоих направлениях, а вызов Play или PlayOneShot возобновляет воспроизведение AudioSource для голосов, воспроизводимых в обоих направлениях.
Чтобы облегчить приостановку AudioSource без воспроизведения назначенного клипа (полезно, когда воспроизводятся ваншоты), мы добавили новую функцию AudioSource.Unpause().
Аудиомикшер
AudioMixer — это новая функция Unity 5, позволяющая выполнять сложную маршрутизацию аудиоданных из AudioSource в группы микширования, где можно применять эффекты. Одно ключевое отличие от аудиофильтралюбого аудиофильтра, который искажает звук от источника звука или звуки, достигающие прослушивателя аудио. Подробнее
В компонентах Словарь аудиофильтры создаются для каждого AudioSource и поэтому более дорого с точки зрения ЦП, если в игре есть большое количество AudioSource с фильтрами или если скрипт просто создает множество экземпляров GameObject, содержащих файлы . С помощью микшера теперь можно настроить группу с одинаковыми эффектами и просто направить звук из AudioSource через общие эффекты, что снижает нагрузку на ЦП.
В настоящее время микшер не поддерживает эффекты на основе сценариев, но у него есть новый собственный API-интерфейс аудиоплагина, позволяющий разработчикам создавать высокопроизводительные эффекты, которые легко интегрируются с другими встроенными эффектами.
Настройки звука
Изменился способ настройки аудиосистемы. Общие параметры настройки режима динамика и размера буфера DSP (т. е. задержки) по-прежнему следует настраивать в аудио настройках проекташирокая коллекция настроек, которые позволяют настроить поведение физики, аудио, сети, графики, ввода и многих других областей вашего проекта. Подробнее
См. в Словарь, и в дополнение к этому теперь также можно настроить учитываются реальные и виртуальные голоса. Реальное количество голосов определяет, сколько голосов можно услышать одновременно, и, следовательно, оказывает сильное влияние на общее потребление ЦП игрой. Раньше это было жестко запрограммировано на 32 с некоторыми исключениями для конкретных платформ. Когда количество воспроизводимых голосов превышает это число, те, которые наименее слышны, будут приостановлены до тех пор, пока эти голоса не станут доминирующими или некоторые из доминирующих голосов не перестанут воспроизводиться. Эти голоса просто исключаются из воспроизведения. Их не останавливают, а просто делают неактивными до тех пор, пока снова не появится полоса пропускания. Виртуальный счетчик голосов определяет, сколькими голосами можно управлять в целом, поэтому, если количество воспроизводимых голосов превышает это значение, наименее слышимые голоса будут остановлены.
AudioSettings.outputSampleRate и AudioSettings.speakerMode по-прежнему можно считывать, но установщики теперь устарели, как и функция SetDSPBufferSize. В качестве замены для этих изменений конфигурации звука, которые должны происходить во время выполнения, теперь существует структура под названием AudioConfiguration. Это можно получить с помощью AudioSettings.GetConfiguration(), который вернет активные настройки на устройстве вывода звука. В эту структуру можно внести изменения и применить их с помощью AudioSettings.Reset(), которая вернет логический результат в зависимости от успешной или неудачной попытки применить изменения.
Всякий раз, когда происходят изменения в конфигурации звука, вызванные сценариями с помощью AudioSettings.Reset() или внешними событиями, такими как подключение мониторов HDMI с поддержкой звука, внешних звуковых карт или USB-гарнитур, определяется пользователем обратный вызов AudioSettings. Будет вызван OnAudioConfigurationChanged(bool deviceChanged). Его аргумент deviceChanged будет ложным, если изменение было вызвано вызовом AudioSettings.Reset(), и истинным, если оно было вызвано изменением внешнего устройства (это также может быть изменение частоты дискретизации используемого аудиоустройства). Обратный вызов позволяет вам воссоздавать любые непостоянные звуки, такие как сгенерированные клипы PCM, восстанавливать любое состояние звука или дополнительно адаптировать настройки звука с помощью вызова AudioSettings.Reset().