Skip to content

Latest commit

 

History

History
54 lines (46 loc) · 13.2 KB

README_RU.md

File metadata and controls

54 lines (46 loc) · 13.2 KB

Перевод:

SoundSystem в Unity Asset Store:


SoundSystem - представляет собой гибкий инструмент для управления звуками в Unity, в основе которого лежит плагин Eazy Sound Manager, минимизируя при этом необходимость в технических навыках и существенно ускоряя процесс разработки. SoundSystem содержит функции Eazy Sound Manager, а так же объединяет их, добавляет новые возможности и снижает количество кода необходимого для создания и управления звуками в проекте Unity. Таким образом изменять различные настройки звука и создавать несложные звуковые схемы может любой человек с минимальными знаниями Unity и без единой строки кода. Помимо этого главные плюсы плагина: простота и производительность. Новый подход к реализации звукового окружения игры позволяет забыть про все проблемы старого подхода, вам не нужно писать кучу кода для проигрывания звука или создания фоновой мелодии, теперь для этого достаточно лишь пары кликов. Маленькая кодо-база позволяет поддерживать код и комментарии всегда в актуальном состоянии, а так же позволяет сконцентрироваться на самом важном аспекте плагина - производительности. Для достижения высокой производительности плагин использует коллекции специально созданные с упором на скорость. Помимо этого так же используются различные ухищрения в виде пулов и инициализации классов в три этапа, обеспечивающих НУЛЕВОЕ выделение мусора при обычной работе плагина. Всё это позволяет достичь потрясающей производительности позволяющий единовременно проигрывать СОТНИ звуков без ощутимого влияния на FrameRate! Но это ещё не всё, в случаях когда для игры малейший скачок FrameRate недопустим, вы можете обработать каждое действие для определённой группы звуков в индивидуальном порядке, отложив его на несколько кадров или разделить выполнение действия на несколько кадров, делая каждый кадр лишь малую часть работы, реализовав это вручную. Подобное возможно благодаря модульной архитектуре, внезависимости от того когда, как и какие действия будут совершенены в отношении группы звуков "A", это никаким образом не повлияет на группу звуков "B". При этом у вас остаётся единовременный контроль над всеми звуками в игре с помощью класса EazySoundManager.

Преимущества использования:

  • Функциональность: содержит все функции Eazy Sound Manager, а так же расширяет их.
  • Имеется поддержка Steam Audio.
  • Производительность: это легковесный плагин с большим упором на оптимизацию.
  • Позволяет группировать клипы и применять к группам различные настройки.
  • Воспроизведение очередью: позволяет воспроизвести клипы друг за другом или все сразу.
  • Простота использования: для добавление фоновой музыки достаточно добавить префаб на сцену и добавить нужные клипы, не нужно дополнительно писать ни строчки кода.
  • Скорость: за счёт своей простоты SoundSystem сильно сокращает время на разработку сложной звуковой схемы в проекте.
  • Модульность: позволяет использовать любое количество экземпляров на сцене, не влияя на работу друг друга, при этом допускает возможность объединения нескольких экземпляров для создания сложных звуковых схем.
  • Позволяет редактировать все настройки группы клипов прямо из инспектора.

Использование:

Вы так же можете ознакомиться коротким туториалом по базовым функциям SoundSystem: туториал. Или использовать документацию которая своевременно обновляется и поддерживается.

  1. Импортировать актив в свой Unity проект.
  2. Добавить на сцену prefab "Sound" который находится по пути: "Assets/Lineri/SoundSystem/SoundSystem/Prefabs/Sound.prefab".
  3. Выбрать дочерний объект "SoundPocket".
  4. Назначить необходимые клип или клипы в соотвествующие поля класса SoundPocket, установить желаемые настройки.
  5. Так же класс SoundPocket, содержит bool переменную "Play Sound On Awake", если её значение установлена как true, то при загрузке сцены очередь клипов начнёт воспроизведение. Это позволяет создавать простые звуковые схемы без дополнительного кода, например это можно использовать для фоновой музыки, зациклив очередь клипов с помощью переменной "Loop Clips".
  6. Но в случае если нужно более сложное взаимодействие, необходимо создать новый скрипт который будет наследоваться от класса SoundPocketManager из префаба помещённого на сцене и вызвать любой из его методов который оканчивается на "Handler". Пример:
public class MyClass : SoundPocketManager
{
    using Lineri.SoundSystem;
 
    public void Start()
   {
      PlayHandler();
   }
}
  1. После необходимо добавить этот класс на объект "Sound". В поле "SoundPocket" назначить ссылку на объект который содержит класс "SoundPocket", в случае неизменнёного префаба, это будет объект "SoundPocket".

Точно такой же подход с остальными методами в классе SoundPocketManager имя которых оканчивается на "Handler". Тут важно знать что класс SoundPocketManager вызывает методы у всех классов SoundPocket которые находятся на объекте, ссылка на который помещена в поле "SoundPocket" у класса SoundPocketManager. Так же, на объекте может быть неограниченное число классов SoundPocket. Такой подход позволяет удобно группировать необходимые клипы и легко их использовать.

Вопросы и ответы:

  • Расскажите подробнее о том, как SoundSystem ускоряет процесс разработки. Какие шаги он упрощает или автоматизирует? С использованием плагина отпадает необходимость в проектировании архитектуры звуковой схемы, не нужно думать о сложных взаимодействиях кучи элементов между собой, достаточно добавить на сцену нужные блоки и связать их со своим проектом.
  • Могу ли я использовать SoundSystem для создания сложных звуковых сценариев, или он больше подходит для базовых настроек? Вы можете использовать плагин для создания сложных сценариев. Плагин покрывает большую часть возможных потребностей.
  • Для проектов какого уровня использование SoundSystem является оптимальным? Формально SoundSystem является инструментом с похожей функциональностью как и FMOD, однако имеет несколько меньше возможностей, отсюда и очень низкий порог входа по сравнению с тем же FMOD. Поэтому отвечая на вопрос: оптимальным для использования считаются 2D инди игры малого и среднего размера, с использованием событийно-ориентированной архитектуры (EDA).
  • Почему использование SoundSystem для 3D игр не является оптимальным? Это связано с особенностями 3D звука? Верно. Хотя использование Steam Audio возможно, функционал работы в паре с этим инструментом несколько ограничен.
  • Если в будущем я захочу внести изменения в звуковые схемы, насколько легко будет провести рефакторинг с использованием SoundSystem? Модульная схема позволяет изменять только нужные модули, не затрагивая другие компоненты не каким образом, благодаря такому подходу рефакторинг займёт минимум времени.
  • Как SoundSystem обеспечивает модульность при использовании нескольких экземпляров на сцене? При использовании SoundSystem рекомендуется использовать событийно-ориентированную архитектуру (EDA) проекта. Благодаря такому решению каждый отдельный компонент звуковой схемы будет независим друг от друга и управляться только с помощью событий.
  • Если у меня возникнут сложности с использованием SoundSystem или у меня появится идея для улучшения, как я могу получить поддержку или оставить предложение? Свяжитесь любым способом со мной, например на GitHub. Я разрабатываю этот плагин так же для своего использования, поэтому я буду поддерживать его длительное время и любые предложения или вопросы приветствуются.