
- •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
- •Переключение между звуком шагов и реактивного ранца
- •Задание переменных сценария «Шаг» и «полет»
4.3.3. Назначение текстуры
С технической точки зрения наложить текстуру непосредственно на геометрию невозможно. Текстуры должны входить в состав материалов, которые, собственно, и назначаются объектам. Как объяснялось во введении, материалом называется пакет информации, описывающий свойства поверхности; эта информация может включать в себя и отображаемую текстуру. Подобный подход имеет смысл, так как позволяет использовать одну и ту же текстуру для разных материалов. Но так как обычно все текстуры фигурируют в составе разных материалов, для удобства в Unity можно просто поместить текстуру на объект, в результате новый материал создается автоматически. Если вы перетащите текстуру с вкладки Project на объект сцены, как показано на рис. 4.7, Unity создаст новый материал и назначит его объекту. Попытайтесь таким образом получить материал для пола.
Кроме этого удобного метода автоматического создания материалов существует еще и «корректный» способ через подменю, которое появляется после выбора в меню Assets команды Create; новый ресурс появляется на вкладке Project. Остается только выделить полученный новый материал, чтобы его свойства отобразились на панели Inspector, и, как показано на рис. 4.8, перетащить текстуру на ячейку с именем Albedo (это технический термин для базового цвета). Перетащите полученный материал со вкладки Project на объект сцены. Попробуйте проделать все описанное с текстурой для стены: создайте новый материал, перетащите в него текстуру и назначьте его стене.
Вы увидите, что на поверхности пола и стен появились изображения камня и кирпичей, но они выглядят растянутыми и размытыми. Как получилось, что единственное изображение оказалось растянутым на весь пол? Мы же хотели, чтобы оно повторялось на поверхности несколько раз. Такой эффект дает свойство Tiling: выделите материал на вкладке Project и измените числа в полях Tiling на панели Inspector (существуют отдельные значения для координат X и Y, отвечающие за количество повторений в каждом направлении). Проверьте, что вы задаете повторение основной, а не вторичной карты (данный материал поддерживает вторичную карту текстуры для усовершенствованных эффектов). По умолчанию число повторений равно 1 (то есть единственная текстура растягивается на всю поверхность); присвойте этому параметру, к примеру, значение 8 и посмотрите, как изменится вид пола. Подберите и для второго материала кратность, обеспечивающую оптимальный вид.
4.4. Создание неба с помощью текстур
Текстуры камня и кирпича придали стенам и полу намного более естественный вид. Но небо пока выглядит пустым и ненатуральным, мы же хотим придать сцене реалистичность. Чаще всего эта задача решается при помощи специальных текстур с изображениями неба.
4.4.1. Что такое скайбокс?
По умолчанию камера показывает фоновый темно-синий цвет. Он заполняет все пустое пространство сцены (например, пространство над стенами). Но в качестве фона можно визуализировать и изображение неба. В этом нам поможет скайбокс.
ОПРЕДЕЛЕНИЕ Скайбоксом (skybox) называется окружающий камеру куб, на грани которого находится изображение неба. В каком бы направлении ни смотрела камера, она будет отображать небо.
Корректная реализация скайбокса — дело непростое; принцип его работы иллюстрирует рис. 4.9. Существует ряд приемов, позволяющих отобразить грани куба как удаленный фон. К счастью, все детали реализации в Unity уже учтены.
Новые сцены создаются с уже готовым скайбоксом. Именно поэтому вместо равномерного темно-синего фона цвет неба постепенно меняется от светлого к темно-синему. Если открыть окно диалога с параметрами освещенности (выбрав в меню Window команду Lighting), первым вы увидите параметр Skybox со значением Default. Этот параметр находится в свитке Environment Lighting; окно диалога разделено на свитки, связанные с усовершенствованной системой освещения в Unity. Впрочем, пока нас интересует только самый первый параметр.
Текстуры для скайбокса, как и текстуры кирпича и камня, можно найти на различных сайтах. Воспользуйтесь поисковым запросом текстуры для скайбокса (skybox textures). Например, я нашел несколько прекрасных вариантов на сайте www.93i.de, в том числе набор TropicalSunnyDay. После добавления к скайбоксу текстуры неба сцена начнет выглядеть так, как показано на рис. 4.10.
Как и прочие текстуры, изображения для скайбокса сначала назначаются материалу и только потом используются в сцене. Давайте попробуем создать для скайбокса новый материал.