Шаблон проектирования или паттерн в разработке программного обеспечения — повторяемая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста. Шаблоны нельзя преобразовать в код, это лишь пример решения поставленной задачи, который можно использовать в различных ситуациях.
Существует три вида шаблонов:
Поведенческие шаблоны – это паттерны, которые решают задачи эффективного и безопасного взаимодействия между объектами программы. Поведенческие паттерны:
Порождающие шаблоны – шаблоны проектирования, которые отвечают за удобное и безопасное создание новых объектов или даже целых семейств объектов. Существуют следующие порождающие шаблоны:
Структурные шаблоны – это паттерны, которые отвечают за построение удобных в поддержке иерархий классов. Структурные шаблоны:
Использование шаблонов помогает избежать многих ошибок и позволяет сократить время, используя проверенные решения. Также при работе в команде с другими разработчиками не обязательно объяснять, что вы сделали, а можно сказать название шаблона.
Каждый из шаблонов решает конкретную проблему, поэтому, прежде чем использовать какой-либо шаблон, нужно убедиться, что он подходит под решение вашей задачи.
Практической задачей является разработка системы управления звуковым сопровождением. В начале мы создаем класс Sound, который описывает наш звуковой файл. Каждый звуковой файл в Unity, который должен быть представлен в игровой среде, описывается с помощью класса AudioSource. Класс AudioClip является контейнером, который хранит в себе информацию об аудиофайле.
Наш класс Sound содержит поле name, которое позволяет присвоить имя нашему аудиофайлу, чтобы в дальнейшем искать наш звуковой файл по имени.
Любой звуковой файл имеет несколько характеристик. В нашем случае мы будем использовать следующие характеристики: volume – громкость (значения варьируются от 0 до 1), pitch – питч, loop – зацикливание.
Перейдем к созданию класса AudioManager. Данный класс – система управления звуковыми файлами в Unity. В нем мы создаем массив, который состоит из наших звуковых файлов. Также в начале, а значит прописываем в методе Awake(), делаем проверку на содержание одного AudioManager на сцене, также вызываем метод DontDestroyOnLoad(), который не удаляет наш объект, при загрузке новой сцены.
В методе Awake() заполняем наш массив, а также звуковые характеристики. Класс AudioManager содержит 2 метода: Play() и Stop(). Каждый из этих методов в качестве входных параметров принимает строку, а именно название звукового файла. Затем мы смотрим существует ли звуковой файл с таким названием. После этого метод Play() воспроизводит аудиофайл, а метод Stop() – останавливает. Таким образом в окне Inspector мы видим полноценную систему управления звуковыми файлами. Каждому звуковому файл мы присваиваем свое имя и необходимые нам характеристики, которые, в последствии, можем изменять.
Дата | Выполнено, % |
---|---|
2020-05-22 15:51:16 | 10 |
2020-05-14 20:08:32 | 100 |