- •1. Преимущества, недостатки Unity. Примеры игр на основе Unity
- •Описание интерфейса главного окна Unity. Вкладка Scene, вкладка Game и панель инструментов.
- •Работа с мышью и клавиатурой. Навигация. Преобразование объектов. Вкладка Hierarchy, Project, Console и панель Inspector
- •4. Поддержка языков программирования в Unity. Сценарии. Компоненты. Методы Start() и Update(). Вывод информации в консоль.
- •5. Планирование трехмерного проекта fps. Трехмерное координатное пространство. Правая и левая системы координат.
- •6. Размещение объектов на трехмерной сцене. Понятие GameObject. Масштабирование объектов.
- •7. Источники света и камеры. Типы осветителей. Коллайдер, типы коллайдеров и точка наблюдения игрока в проекте fps.
- •3.3.3. Слежение за состоянием персонажа
- •14. Увеличение количества врагов: шаблон экземпляров, создание шаблона врага, сценарий SceneController, порождающий экземпляры врагов.
- •3.4.1. Что такое шаблон экземпляров?
- •3.4.2. Создание шаблона врага
- •3.5.1. Шаблон снаряда
- •3.5.2. Стрельба и столкновение с целью
- •3.5.3. Повреждение игрока
- •16. Типы игровых ресурсов. Создание геометрической модели сцены. Назначение геометрической модели. Наложение текстур. Выбор формата файла
- •4.1. Основные сведения о графических ресурсах
- •4.2. Создание геометрической модели сцены
- •4.2.1. Назначение геометрической модели
- •4.3. Наложение текстур
- •4.3.1. Выбор формата файла
- •17. Импорт файла изображения. Назначение текстуры. Создание неба с помощью текстур. Скайбокс. Создание нового материала для скайбокса
- •4.3.2. Импорт файла изображения
- •4.3.3. Назначение текстуры
- •4.4. Создание неба с помощью текстур
- •4.4.1. Что такое скайбокс?
- •4.4.2. Создание нового материала для скайбокса
- •18. Выбор формата файла для экспорта трехмерных моделей. Экспорт и импорт модели.
- •19. Системы частиц. Редактирование параметров эффекта. Новая текстура для пламени. Присоединение эффектов частиц к трехмерным объектам.
- •20. Подготовка проекта Memory. Понятие спрайт. Анимированные спрайты. Переключение камеры в режим 2d. Интерактивные объекты. Создание объекта из спрайтов.
- •21. Проект Memory: открытие карты по щелчку. Сценарий. Программная загрузка изображений. Выбор изображения в невидимом компоненте SceneController. Сценарий, реализующий эти методы.
- •28. Игра в стиле jetpack joyride в Unity 2d. Передвижение мыши вперед (скрипт). Создание бесконечного уровня в Unity: создание префаба, генератор комнат (скрипт).
- •29. Игра в стиле jetpack joyride в Unity 2d. Анимация персонажа: покадровая анимация, создание анимационных переходов, добавление параметров перехода.
- •31. Игра в стиле jetpack joyride в Unity 2d. Добавление лазеров в игру. Скрипт для включения, выключения, переключения и вращения лазеров. Настройка параметров этого скрипта.
- •32. Игра в стиле jetpack joyride в Unity 2d. Реализация скрипта, описывающего смерть мыши. Добавление анимаций Fall и Die, переходы между ними, триггер при смерти мыши.
- •33. Игра в стиле jetpack joyride в Unity 2d. Добавление монет. Использование тегов для различия в игре монет и лазеров. Обновленный скрипт контроллера персонажа.
- •Добавление метода для добавления нового объекта
- •Генерация и удаление объектов
- •Настройка параметров скрипта
- •35. Игра в стиле jetpack joyride в Unity 2d. Скрипт для добавления счётчика монет на экране. Скрипт для отображения кнопки на экране и возможности перезапуска игры.
- •Звук для лазера
- •Звук сбора монет
- •Звуки шагов и реактивного ранца
- •Добавление Audio Sources
- •Переключение между звуком шагов и реактивного ранца
- •Задание переменных сценария «Шаг» и «полет»
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».