Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы и ответы к экзамену.docx
Скачиваний:
29
Добавлен:
21.06.2022
Размер:
16.83 Mб
Скачать

20. Подготовка проекта Memory. Понятие спрайт. Анимированные спрайты. Переключение камеры в режим 2d. Интерактивные объекты. Создание объекта из спрайтов.

Подготовка проекта Memory

Первым делом нужно собрать и отобразить всю графику. Практически тем же способом, которым раньше создавался трехмерный демонстрационный ролик, мы начнем новую игру с помещения в сцену игровых объектов, после чего приступим к программированию их функциональности.

Это означает, что нужно создать все представленное: рубашку карт, их лицевую сторону, табло отображения количества набранных очков в одном углу игрового пространства и кнопку перезагрузки в другом. Кроме того, нам потребуется фон.

Берите все требуемые изображения и создайте в Unity новый проект. В нижней части появившегося окна вы увидите пару кнопок, позволяющих переключаться между режимами 2D и 3D.

Понятие спрайт

Спрайты (sprites) представляют собой отображаемые непосредственно на экране двухмерные изображения, в то время как такие же изображения, отображаемые на поверхности трехмерных моделей, называются текстурами.

Выполните импорт всех изображений, перетащив их на вкладку Project; убедитесь, что изображения импортированы как спрайты, а не как текстуры. Для этого выделите любую картинку и посмотрите настройки ее импорта на панели Inspector. Нас интересует поле Texture Type. Теперь перетащите спрайт table_top (наше фоновое изображение) с вкладки Project в пустую сцену. Сохраните сцену. Как и в случае с сеточными объектами, на панели Inspector окажется компонент Transform для данного спрайта; присвойте его полям значения 0, 0, 5 для изменения положения фонового изображения.

Анимированные спрайты

Для данного проекта мы будем использовать только статичные изображения, но в двухмерных играх повсеместно распространены анимированные спрайты. Они создаются рисованием каждого кадра анимации и последующего воспроизведения полученной последовательности кадров в Unity. Кадры можно импортировать в виде отдельных изображений, но обычно их выкладывают в виде одной картинки, которая называется листом спрайтов (sprite sheet). Листы спрайтов можно автоматически генерировать в Unity или пользоваться для их создания такими инструментами, как Texture Packer. При импорте листа в списке Sprite Mode настроек спрайта следует выбрать вариант Multiple

Лист спрайтов появляется на вкладке Project как один ресурс, но щелчок на расположенной сбоку стрелке раскрывает его и дает возможность увидеть отдельные спрайты. Вместо того чтобы перетаскивать спрайты в сцену по одному за раз, можно перетащить их группой.

Как упоминалось во врезке «Анимированные спрайты», набор спрайтов можно превратить в одно изображение. В случае, когда таким способом комбинируются кадры двухмерной анимации, такой набор называется листом спрайтов. Но для подобной структуры существует еще один, более общий термин — атлас (atlas). Листы спрайтов используют для хранения кадров анимации, атласы же зачастую применяются для статичных изображений.

Дело в том, что они двумя способами оптимизируют производительность: во-первых, уменьшая количество пустого пространства в изображениях путем их плотной упаковки; во-вторых, уменьшая количество вызовов прорисовки (draw calls) видеокарты (каждое новое загруженное изображение означает дополнительную работу видеокарты). Для создания атласов спрайтов применяются внешние инструменты (после импорта в настройках спрайта нужно выбрать вариант Multiple), и это прекрасно работает. Но в Unity существует упаковщик спрайтов, автоматически соединяющий друг с другом наборы изображений. По умолчанию он отключен и включается в настройках редактора, для доступа к которым нужно выбрать в меню Edit команду Project Settings и затем — Editor.

Переключение камеры в режим 2D

Отредактируем настройки основной камеры в сцене. Не думайте, что благодаря переключению вкладки Scene в режим работы с двухмерной графикой вы в процессе игры будете видеть то же самое, что видите в Unity.

Самая важная настройка камеры называется Projection (проекция). Выделите камеру на вкладке Hierarchy, чтобы ее настройки появились на панели Inspector. Для работы с трехмерной графикой параметр Projection должен иметь значение Perspective, двухмерная же графика требует значения Orthographic. Фоновый цвет.

Параметр Size определяет размер поля зрения камеры от центра экрана до его верхнего края. Другими словами, этому параметру присваивается значение, равное половине желаемого размера экрана в пикселах.

Еще два параметра, которые нужно поменять на панели Inspector, — это фоновый цвет камеры и ее положение по координате Z. Как уже упоминалось при рассмотрении спрайтов, чем больше значение координаты Z, тем дальше расположен объект. Поэтому отодвинем камеру подальше в область отрицательных значений Z; например, 0, 0, –100. В качестве фонового цвета, наверное, лучше всего выбрать черный; по умолчанию фон имеет синий цвет, и если экран окажется шире фонового изображения (что вполне вероятно), синие полоски по сторонам будут выглядеть странно. Щелкните на образце цвета Background и выберите черный цвет.

Создание объекта из спрайтов

Перетащите в сцену одну из карт. С технической точки зрения положение карты пока не имеет значения, но в конечном счете она должна будет оказаться в определенной точке, поэтому присвойте полям Position значения –3, 1, 0. Затем перетащите в сцену спрайт card_back. Сделайте этот новый спрайт потомком предыдущего (напоминаю, что для этого на вкладке Hierarchy нужно перетащить дочерний объект на родительский) и установите для него положение 0, 0, –0.1. Помните, что это положение относительно предка, то есть данные координаты означают «Поместите рубашку карты в точку с теми же координатами X и Y, но ее чуть ближе по координате Z».