Uploaded by Default

Geig M. Razrabotka igr na Unity za 24 chasa.Fragment

advertisement
УДК 004.9
ББК 77.056с.я92
Г27
MIKE GEIG
UNITY 2018 GAME DEVELOPMENT IN 24 HOURS, SAMS TEACH YOURSELF
Authorized translation from the English language edition, entitled UNITY 2018 GAME DEVELOPMENT
IN 24 HOURS, SAMS TEACH YOURSELF, 3rd Edition by MIKE GEIG, published by Pearson Education, Inc,
publishing as Sams Publishing,
Copyright © 2018 by Pearson Education.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval
system, without permission from Pearson Education, Inc. RUSSIAN language edition published
by Limited Company, Publishing House Eksmo, Copyright © 2019
Г27
Гейг, Майк.
Разработка игр на Unity 2018 за 24 часа / Майк Гейг ; [перевод с английского
М. А. Райтмана]. — Москва : Эксмо, 2020. — 464 с. — (Мировой компьютерный
бестселлер. Геймдизайн).
ISBN 978-5-04-105963-7
Unity — невероятно мощный игровой движок, популярный среди разработчиков
игр как профессионального, так и любительского уровня. Автор книги — Майк Гейг,
руководитель направления информационно-разъяснительной работы в компании
Unity Technologies.
Эта книга призвана ускорить обучение читателя и дать ему возможность как можно быстрее начать работу с Unity и освоить принципы игрового программирования.
Вы не только приобретете теоретические знания об игровом движке Unity, но
и создадите небольшое портфолио игр, которое пригодится вам в будущем.
УДК 004.9
ББК 77.056с.я92
ISBN 978-5-04-105963-7
© Райтман М.А., перевод на русский язык, 2019
© Оформление. ООО «Издательство «Эксмо», 2020
ПРЕДИСЛОВИЕ
19
Для кого предназначена эта книга
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
Как организована эта книга
Файлы примеров
ОБ АВТОРЕ
23
Посвящение
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Благодарности
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-Й ЧАС. ВВЕДЕНИЕ В UNITY
23
25
Установка Unity . . . . . . . . . . . .
Загрузка и установка Unity
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Знакомство с редактором Unity . . . . . . . .
Диалоговое окно Project . . . . . . . . . . . .
Интерфейс Unity . . . . . . . . . . . . . . . . . . .
Панель Project . . . . . . . . . . . . . . . . . . . . .
Панель Hierarchy . . . . . . . . . . . . . . . . . . .
Панель Inspector . . . . . . . . . . . . . . . . . . .
Панель Scene . . . . . . . . . . . . . . . . . . . . . .
Панель Game . . . . . . . . . . . . . . . . . . . . . .
Важная деталь: панель инструментов
Навигация на панели Scene в Unity
Инструмент Hand . . . . . . . . . . . . .
Режим Flythrough . . . . . . . . . . . . .
Резюме
23
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
26
28
28
30
32
35
36
37
39
41
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
42
43
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
46
46
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-Й ЧАС. ИГРОВЫЕ ОБЪЕКТЫ
Измерения и системы координат . . .
Что такое D в 3D . . . . . . . . . . . . . . .
Использование систем координат
48
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
48
49
6
Разработка игр на Unity 2018 за 24 часа
Глобальные и локальные координаты
Игровые объекты
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
Преобразования . . . . . . . . . . . . . . . . . . . . . .
Перемещение . . . . . . . . . . . . . . . . . . . . . .
Вращение . . . . . . . . . . . . . . . . . . . . . . . . . .
Масштабирование . . . . . . . . . . . . . . . . . .
«Подводные камни» преобразований . .
Расположение гизмо . . . . . . . . . . . . . . . .
Преобразования и вложенные объекты
Резюме
. . . . . . . . . . . . . . . . . . . . . . . . . . .
53
54
56
57
58
59
61
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
62
62
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-Й ЧАС. МОДЕЛИ, МАТЕРИАЛЫ И ТЕКСТУРЫ
Общая информация о моделях
Встроенные 3D-объекты . . .
Импортирование моделей .
Модели и Asset Store . . . . . . .
64
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Текстуры, шейдеры и материалы
Текстуры . . . . . . . . . . . . . . . . . .
Шейдеры . . . . . . . . . . . . . . . . . .
Материалы . . . . . . . . . . . . . . . . .
И снова о шейдерах . . . . . . . . .
Резюме
61
64
66
67
68
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
71
71
72
73
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
77
77
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-Й ЧАС. ЛАНДШАФТ И ЭЛЕМЕНТЫ ОКРУЖАЮЩЕЙ СРЕДЫ
Генерация ландшафта . . . . . . . . . . . . . . . . . . . . . . .
Добавление ландшафта в проект . . . . . . . . . . . .
Составление карты высот . . . . . . . . . . . . . . . . . .
Инструменты для создания ландшафта в Unity
Текстуры ландшафта . . . . . . . . .
Импорт ассетов ландшафта .
Текстурирование ландшафта
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
80
81
82
85
88
88
90
Оглавление
Генерация деревьев и травы
Рисуем деревья . . . . . . . . .
Рисуем траву . . . . . . . . . . .
Настройки ландшафта . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Контроллеры персонажа . . . . . . . . . . . . .
Добавление контроллера персонажа
Резюме
93
94
95
98
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
101
101
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
102
Вопросы и ответы
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
102
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
103
103
103
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
103
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-Й ЧАС. ИСТОЧНИКИ СВЕТА И КАМЕРЫ
105
Источники света . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Запекание и отображение в реальном времени
Точечные источники освещения . . . . . . . . . . . . .
Прожекторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Направленный свет . . . . . . . . . . . . . . . . . . . . . . . .
Создание источников света из объектов . . . . . .
Гало . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Камеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Как устроена камера . . . . . . . . . . . . . . . . . . . .
Использование нескольких камер . . . . . . . . .
Разделение экрана и «картинка-в-картинке»
Слои . . . . . . . . . . . . . . . .
Работа со слоями . . .
Использование слоев
Резюме
7
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
105
106
107
109
110
111
112
113
115
115
117
118
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
120
121
122
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
125
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
125
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
125
125
126
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
126
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-Й ЧАС. ИГРА ПЕРВАЯ: «Великолепный гонщик»
Проектирование
Концепция . . .
Правила . . . . .
Требования . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
128
128
129
129
130
8
Разработка игр на Unity 2018 за 24 часа
Создание игрового мира .
Создание мира . . . . . . .
Добавление окружения
Туман . . . . . . . . . . . . . . .
Скайбоксы . . . . . . . . . . .
Контроллер персонажа
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Игрофикация . . . . . . . . . . . . . . . . . . . . . . . . . .
Добавление объектов управления игрой
Добавление скриптов . . . . . . . . . . . . . . . .
Подключение скриптов . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
136
137
139
141
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
142
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
143
Тестирование игрового процесса
Резюме
131
131
132
133
134
135
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
143
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
144
144
144
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
145
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-Й ЧАС. СКРИПТЫ, ЧАСТЬ 1
146
Скрипты . . . . . . . . . . . . . . . . . . . . . .
Создание скриптов . . . . . . . . . . .
Назначение скрипта . . . . . . . . . .
Структура простого скрипта . .
Раздел подключения библиотек
Раздел объявления классов . . . .
Структура класса . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Переменные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Создание переменных . . . . . . . . . . . . . . . . . . . .
Область видимости переменной . . . . . . . . . . .
Модификаторы доступа public и private
Операторы . . . . . . . . . . . . . . . . .
Арифметические операторы
Операторы присваивания . .
Операторы сравнения . . . . .
Логические операторы . . . .
Условные операторы . . . . .
Оператор if . . . . . . . . . .
Оператор if/else . . . .
Оператор if/else if
Циклы . . . . . . . .
Цикл while
Цикл for . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
147
147
150
151
152
152
152
154
154
155
156
157
157
158
159
160
161
161
162
162
164
164
165
Оглавление
Резюме
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
167
168
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ввод данных . . . . . . . . . . . . . . . . . . . . . .
Основы ввода данных . . . . . . . . . . .
Пользовательский ввод в скриптах
Клавиатура . . . . . . . . . . . . . . . . . . . .
Мышь . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Доступ к локальным компонентам . . . . . . . . .
Использование метода GetComponent()
Доступ к компоненту Transform . . . . . . . . . .
Доступ к другим объектам . . . . . . . . .
Поиск других объектов . . . . . . . . . .
Изменение компонентов объектов
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
168
169
171
173
174
175
176
177
179
180
180
181
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
182
182
185
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
186
Вопросы и ответы
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Твердые тела
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
187
189
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Активация столкновений
Коллайдеры . . . . . . . . . .
Физические материалы
Триггеры
186
187
187
187
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-Й ЧАС. СТОЛКНОВЕНИЯ
189
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
191
191
194
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
196
Рейкастинг
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
198
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
200
Вопросы и ответы
Семинар
166
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Методы . . . . . . . . . . . . . . . . .
Структура метода . . . . . .
Написание методов . . . .
Использование методов
Резюме
165
166
166
167
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-Й ЧАС. СКРИПТЫ, ЧАСТЬ 2
Резюме
9
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
200
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
201
10
Разработка игр на Unity 2018 за 24 часа
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
201
201
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
201
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10-Й ЧАС. ИГРА ВТОРАЯ: «Шар хаоса»
Проектирование
Концепция . . .
Правила . . . . .
Требования . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Арена . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Создание арены . . . . . . . . . . . . . . . . .
Текстурирование . . . . . . . . . . . . . . . .
Создание сверхупругого материала
Финальные штрихи арены . . . . . . . .
Игровые сущности
Игрок . . . . . . . . .
Шары хаоса . . . .
Цветные шары .
Управление . . . . .
Цели . . . . . . . . .
Менеджер игры
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
205
205
206
207
208
209
209
210
212
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
216
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
217
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
217
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
217
217
217
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
218
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11-Й ЧАС. ПРЕФАБЫ
219
Введение в префабы . . . . . .
Терминология префабов
Структура префаба . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Управление префабами . . . . . . . . . . . . . . . . . . . . . . .
Добавление экземпляра префаба на сцену . . . .
Наследование . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Разрыв связи префабов . . . . . . . . . . . . . . . . . . . . .
Создание экземпляра префаба с помощью кода
Резюме
203
204
204
204
213
213
215
Улучшение игры
Резюме
203
219
220
220
. . . . . . . . . . . . . . . . . . .
222
225
227
228
228
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
229
Вопросы и ответы
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
229
Оглавление
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
230
230
230
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
230
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12-Й ЧАС. ИНСТРУМЕНТЫ ДЛЯ СОЗДАНИЯ 2D-ИГР
Основы 2D-игр
232
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Панель Scene в 2D-разработке
Ортографические камеры
232
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
233
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
235
Добавление спрайтов . . . . . . . . . . . . . . . . .
Импортирование спрайтов . . . . . . . . . .
Режимы спрайтов . . . . . . . . . . . . . . . . . .
Размеры импортированных спрайтов
Порядок отрисовки . . . . . . .
Слои сортировки . . . . . .
Порядок спрайтов в слое
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2D-физика . . . . . . . . . . . . . . . . . . . . .
Компонент Rigidbody в 2D-играх
2D-коллайдеры . . . . . . . . . . . . . . .
Резюме
11
237
237
238
240
240
241
243
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
243
243
244
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
245
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
245
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
246
246
246
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
246
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13-Й ЧАС. ТАЙЛМАПЫ В 2D-ИГРАХ
Введение в тайлмапы .
Создание тайлмапа
Сетка . . . . . . . . . . . . .
Палитры . . . . . . . . . . .
Панель Tile Palette
248
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Тайлы . . . . . . . . . . . . . .
Настройка спрайтов
Создание тайла . . . .
Нанесение тайлов . .
Настройка палитр .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Тайлмапы и физика . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Коллайдеры тайлмапов . . . . . . . . . . . . . . . . . . . . . . .
Использование компонента Composite Collider 2D
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
248
249
250
251
252
253
254
254
256
259
260
260
262
12
Разработка игр на Unity 2018 за 24 часа
Резюме
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
263
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
263
264
264
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
264
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14-Й ЧАС. ПОЛЬЗОВАТЕЛЬСКИЕ ИНТЕРФЕЙСЫ
Основные принципы работы с пользовательскими интерфейсами
Холст . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Компонент Rect Transform . . . . . . . . .
Якорь . . . . . . . . . . . . . . . . . . . . . . . . . . .
Дополнительные компоненты холста
Режимы рендеринга холста . . . . .
Режим Screen Space — Overlay
Режим Screen Space — Camera
Режим World Space . . . . . . . . . .
265
. . . . .
265
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
266
267
268
272
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Элементы пользовательского интерфейса
Изображения . . . . . . . . . . . . . . . . . . . . . . .
Текст . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Кнопки . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Событие OnClick() . . . . . . . . . . . . . . .
Резюме
263
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
272
273
274
275
277
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
280
281
281
282
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
283
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
283
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
284
284
284
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
284
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15-Й ЧАС. ИГРА ТРЕТЬЯ: «Капитан Бластер»
Проектирование
Концепция . . .
Правила . . . . .
Требования . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Создание игрового мира
Камера . . . . . . . . . . . . .
Фон . . . . . . . . . . . . . . . .
Игровые сущности . . .
Игрок . . . . . . . . . . . . . .
Метеоры . . . . . . . . . . . .
Снаряды . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
287
287
288
288
288
288
289
290
291
291
293
295
Оглавление
Триггеры . . . . . . . . . . . . . . . . . .
Пользовательский интерфейс
Управление . . . . . . . . . . . . .
Менеджер игры . . . . . . . .
Скрипт для метеора . . . .
Спаун метеоров . . . . . . . .
Скрипт DestroyOnTrigger
Скрипт ShipControl . . . . .
Скрипт для снаряда . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
295
296
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
297
298
299
300
302
302
304
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
305
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
306
Улучшения
Резюме
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
306
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
307
307
307
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
307
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16-Й ЧАС. СИСТЕМЫ ЧАСТИЦ
308
Системы частиц . . . . . . . . . . . . . . . . . . . . . .
Частицы . . . . . . . . . . . . . . . . . . . . . . . . . . .
Системы частиц в Unity . . . . . . . . . . . . . .
Элементы управления системой частиц
Модули систем частиц . . . . . . . . . . . .
Модуль по умолчанию . . . . . . . . . .
Модуль Emission . . . . . . . . . . . . . . .
Модуль Shape . . . . . . . . . . . . . . . . .
Модуль Velocity over Lifetime . . . . .
Модуль Limit Velocity over Lifetime
Модуль Inherit Velocity . . . . . . . . . .
Модуль Force over Lifetime . . . . . . .
Модуль Color over Lifetime . . . . . . .
Модуль Color by Speed . . . . . . . . . .
Модуль Size over Lifetime . . . . . . . .
Модуль Size by Speed . . . . . . . . . . .
Модуль Rotation over Lifetime . . . .
Модуль Rotation by Speed . . . . . . .
Модуль External Forces . . . . . . . . . .
Модуль Noise . . . . . . . . . . . . . . . . . .
Модуль Collision . . . . . . . . . . . . . . .
Модуль Triggers . . . . . . . . . . . . . . . .
Модуль Sub Emitter . . . . . . . . . . . . .
Модуль Texture Sheet . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
308
308
309
310
311
312
314
314
314
315
315
316
316
317
317
317
317
317
318
318
319
321
322
322
14
Разработка игр на Unity 2018 за 24 часа
Модуль Lights . . . . . .
Модуль Trails . . . . . .
Модуль Custom Data
Модуль Renderer . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
322
323
323
323
Редактор Curves Editor
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
324
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
326
Резюме
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
327
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17-Й ЧАС. АНИМАЦИЯ
329
Основы анимации
Скелет . . . . . . . . .
Анимация . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Типы анимации . . . . . .
2D-анимация . . . . . .
Создание анимации
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Инструменты анимации
Панель Animation . . . .
Создание анимации . .
Режим записи . . . . . . .
Редактор Curves Editor
Резюме
326
327
327
327
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
329
329
330
331
331
333
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
335
335
337
339
341
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
342
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
343
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
343
343
343
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
343
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18-Й ЧАС. АНИМАТОРЫ
345
Основы аниматоров . .
Немного о скелетах
Импорт модели . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Настройка ассетов . . . . .
Подготовка скелета . .
Подготовка анимации
Создание аниматора
Панель Animator . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
345
347
347
349
349
351
357
359
Оглавление
Анимация Idle . . . . . . . . . . . . . . . . .
Параметры . . . . . . . . . . . . . . . . . . . .
Состояния и деревья смешивания
Переходы . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
360
361
362
364
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
365
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
366
Скрипты для аниматоров
Резюме
Вопросы и ответы
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
367
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
367
367
367
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
367
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19-Й ЧАС. СИСТЕМА TIMELINE
Знакомство с Timeline . .
Структура Timeline . . .
Создание таймлайнов
Работа с таймлайнами
Панель Timeline . . .
Треки . . . . . . . . . . . .
Клипы таймлайнов .
369
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Расширяем границы возможностей . .
Смешивание клипов на треке . . . . .
Использование скриптов с Timeline
Резюме
15
369
370
371
372
372
373
376
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
378
378
380
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
382
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
382
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
382
382
382
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
383
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20-Й ЧАС. ИГРА ЧЕТВЕРТАЯ: «Бег с препятствиями»
Проектирование
Концепция . . .
Правила . . . . .
Требования . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Создание игрового мира
Сцена . . . . . . . . . . . . . .
Полоса препятствий . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Прокрутка полосы препятствий
Игровые сущности
384
384
385
385
385
386
386
387
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
388
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
389
16
Разработка игр на Unity 2018 за 24 часа
Бонусы . . . . .
Препятствия
Зона-триггер
Игрок . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Элементы управления . . . .
Скрипт зоны-триггера . .
Скрипт менеджера игры
Скрипт игрока . . . . . . . . .
Скрипт Collidable . . . . . .
Скрипт Spawner . . . . . . .
Собираем все воедино . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Простор для совершенствования
Резюме
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
394
394
394
396
398
399
400
401
401
402
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
402
402
402
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
402
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21-Й ЧАС. РАБОТА СО ЗВУКОМ
404
Введение в работу со звуком . . . . . . . . . . . .
Как устроено звуковое сопровождение
2D- и 3D-Audio . . . . . . . . . . . . . . . . . . . . .
Компонент Audio Source . . . . . . . . . . . . .
Импорт аудиоклипов . . . . . . . . . . . . . .
Тестирование звука на панели Scene
3D-звук . . . . . . . . . . . . . . . . . . . . . . . . . .
2D-звук . . . . . . . . . . . . . . . . . . . . . . . . . .
Скрипты озвучки . . . . . . . . . . . . . . .
Начало и прекращение звучания
Смена аудиоклипов . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Аудиомикшеры . . . . . . . . . . . . . . . . . . . . . . .
Создание аудиомикшеров . . . . . . . . . . . .
Перенаправление звука в аудиомикшер
Резюме
389
390
391
391
404
404
406
406
407
408
410
410
411
411
413
. . . . . . . . . . . . . . . . . . . . . . . . . .
413
413
414
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
416
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
416
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
416
416
416
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
417
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Оглавление
22-Й ЧАС. РАЗРАБОТКА ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ
Подготовка к мобильной разработке
Настройка среды . . . . . . . . . . . . . . .
Unity Remote . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Акселерометры . . . . . . . . . . . . . . . . . . . . . . . .
Проектирование игр для акселерометра
Использование акселерометра . . . . . . . . .
Сенсорный ввод . . . . . . . . . . . . . . . . . . . . .
Резюме
419
419
420
421
. . . . . . . . . . . . . . . . . . . . . . . . .
423
424
424
425
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
428
Вопросы и ответы
Упражнение
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
428
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
429
429
429
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
429
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23-Й ЧАС. ДОРАБОТКА И РАЗВЕРТКА
Управление сценами . . . . . . . . . . . . . . .
Создание последовательности сцен
Переключение между сценами . . . .
Сохранение данных и объектов
Сохранение объектов . . . . . .
Сохранение данных . . . . . . . .
431
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Настройки проигрывателя Unity . . . . . . . . . . .
Кросс-платформенные настройки . . . . . . . .
Специфические для платформы настройки
Сборка игры . . . . . . .
Настройки сборки
Настройки игры . .
Резюме
17
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
431
432
433
434
434
436
438
438
439
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
440
440
442
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
443
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
444
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
444
444
444
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
444
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24-Й ЧАС. ФИНАЛЬНЫЕ ШТРИХИ
Наши достижения
446
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Девятнадцать часов обучения
Четыре полноценные игры .
Более пятидесяти сцен . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
446
446
448
448
18
Разработка игр на Unity 2018 за 24 часа
Куда двигаться дальше
Делайте игры . . . . .
Работайте с людьми
Пишите об этом . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
449
449
449
449
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
450
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
450
Доступные ресурсы
Резюме
Вопросы и ответы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Семинар . . . . . . . . . . . . . .
Контрольные вопросы
Ответы . . . . . . . . . . . . .
Упражнение
450
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
451
451
451
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
451
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
452
2-Й ЧАС
' -
Что вы узнаете в этом часе
X
Как
работать с двумерной и трехмерной системами координат
X
Как
работать с объектами игры
X
Как
работать с преобразованиями
Игровые объекты — основные компоненты проекта Unity. Каждый элемент, который находится на сцене, — это игровой объект или образован от него. В этом часе
вы изучите игровые объекты в Unity. Однако сначала вы должны получить представление о двумерной и трехмерной системах координат. Затем мы начнем работу со встроенными в Unity игровыми объектами, а завершим этот час изучением
различных преобразований для них. Данная информация лежит в основе всего
дальнейшего понимания книги. Уделите время этому разделу и проработайте его
как следует.
' За красочной картинкой любой видеоигры всегда стоят математические конструкции. Все свойства, движения и взаимодействия — это в итоге обычные числа.
К счастью для вас, большая часть подготовительной работы уже давно выполнена. Математики в течение многих столетий трудились над тем, чтобы обнаружить,
изобрести и упростить различные процессы, и теперь благодаря им вы можете легко создавать игры с современным программным обеспечением. Может показаться,
что объекты расположены в пространстве случайным образом, но на самом деле
каждая игра имеет координатные оси и каждый объект располагается в системе
координат (или в сетке).
( D 3D
Как мы говорили ранее, в каждой игре есть несколько измерений. Наиболее распространены, скорее всего, знакомые вам двумерная и трехмерная системы
Измерения и системы координат
49
(2D и 3D, где D от слова Dimension — измерение). Двумерная система плоская.
Здесь у вас есть только вертикальные и горизонтальные элементы (или, иначе
говоря, направления вверх, вниз, влево и вправо). Tetris, Pong и Pac Man — отличные примеры 2D-игр. Трехмерная система похожа на двумерную, но в ней, очевидно, на одно измерение больше. В трехмерной системе у вас есть не только горизонталь и вертикаль (направления вверх, вниз, влево и вправо), но еще и глубина
(вперед и назад). На рис. 2.1 наглядно показано различие между двумерной плоскостью и трехмерным кубом. Обратите внимание, как добавление оси глубины
заставляет трехмерный куб словно «выпирать».
Y
Y
(0,0)
Z
(0,0)
X
X
Рис. 2.1. Двумерный квадрат в сравнении с трехмерным кубом
ПРИМЕЧАНИЕ
! *1 2D
3D
Unity — это 3D-движок. Поэтому во всех проектах по умолчанию используются все три
измерения. Откроем вам секрет: сегодня уже не существует такого понятия, как истинная 2D-игра. Современные аппаратные средства обрабатывают все как 3D. В 2D-играх ось Z тоже есть, но не используется. Вы можете с удивлением спросить — а зачем
мы вообще обсуждаем двумерные системы в этой книге? Правда заключается в том,
что даже в 3D-проектах много двумерных элементов. Текстуры, элементы экрана
и маппинг работают в двумерной системе. Unity имеет мощный набор инструментов
для работы с 2D-играми, и двумерные системы пока еще не канули в Лету.
' * Математический эквивалент системы измерений — система координат. В системе координат используется набор прямых, называемых осями, и позиций,
50
2-Й ЧАС. Игровые объекты
называемых точками. Эти оси непосредственно соответствуют измерениям, которые они заменяют. Например, в двумерной системе координат есть оси x и y, которые соответствуют горизонтальному и вертикальному направлению. Если объект
движется по горизонтали, мы говорим, что он движется «вдоль оси x». Аналогичным образом, в трехмерной системе координат используются оси x, y и z для обозначения горизонтального, вертикального направлений и глубины.
ПРИМЕЧАНИЕ
Общие правила записи координат
Когда речь идет о положении объекта, мы, как правило, перечисляем его координаты. Но говорить, что объект находится в позиции 2 на оси x и в позиции 4 на оси y —
немного громоздко. К счастью, существует сокращенный вариант. В двумерной системе можно записать координаты в виде (х, у), а в трехмерной (x, y, z). Таким образом,
для объекта, который находится в позиции 2 на оси x и в позиции 4 на оси y, мы
пишем (2, 4). Если этот объект также находится в позиции 10 на оси z, можно было бы
написать (2, 4, 10).
Y
(–3, 3)
(2, 2)
X
(0, 0)
(2, –2)
Рис. 2.2. Расположение точек по отношению к началу координат
В каждой системе координат есть точка, в которой все оси пересекаются. Эта точка называется началом координат, и ее координаты всегда (0, 0) в двумерной
Измерения и системы координат
51
системе и (0, 0, 0) — в трехмерной. Это очень важная точка, так как именно от нее
отсчитываются все остальные. Координаты любой другой точки — это всего лишь
расстояние от начала координат до данной точки вдоль каждой оси. Чем дальше точка от начала координат, тем больше ее координата. Например, если точка
перемещается вправо, ее координата x становится больше. Если точка перемещается влево, значение координаты x становится все меньше, пока точка не пересечет начало координат. После этого значение координаты x начинает расти в отрицательную область. Рассмотрим рис. 2.2. В представленной двумерной системе
координат определены три точки. Точка (2, 2) на 2 единицы удалена от начала координат вдоль осей x и y. Точка (–3, 3) на 3 единицы левее начала координат и на 3 единицы выше начала координат. Точка (2, −2) смещена на 2 единицы
вправо от начала координат и на 2 единицы ниже начала координат.
.*
* Теперь вы узнали об измерениях игрового мира и о системах координат, которые
их определяют. То, с чем мы работали до сих пор, называется глобальной системой
координат. В любой момент времени в глобальной системе координат существует только одна ось z, одна ось y и одна ось z. Точно так же есть одно начало координат, от которого отсчитывается положение всех объектов. Здесь для нас новым
будет тот факт, что существует еще так называемая локальная система координат.
Она уникальна для каждого объекта и полностью обособлена от локальных систем
координат других объектов, то есть она имеет собственную ось и начало координат, которые используются только одним конкретным объектом. На рис. 2.3
показаны глобальные и локальные системы координат и отмечены четыре точки,
составляющие квадрат, в координатах каждой из этих систем.
Y
Y
(3, 8)
(9, 8)
(–3, 3)
(3, 3)
X
(3, 2)
(0, 0)
(9, 2)
X
(–3, –3)
(3, –3)
(0, 0)
Рис. 2.3. Глобальные координаты (слева) в сравнении с локальными координатами (справа)
52
2-Й ЧАС. Игровые объекты
Вы можете спросить — зачем нужна локальная система координат, если и так
есть глобальная, которая используется для определения положения объектов. Позже в этом часе мы рассмотрим преобразование игровых объектов и наследование признаков у игровых объектов. Оба эти процесса требуют наличия локальной
системы координат.
' -
Все формы, модели, освещение, камеры, системы частиц и другие элементы в игре
Unity имеют общую черту: они являются игровыми объектами, то есть базовыми элементами любой сцены. Несмотря на простоту, они очень мощные. По сути,
игровые объекты — это нечто большее, чем преобразования (о них мы более
подробно поговорим далее в этом часе) и контейнеры. Контейнер — это часть
игрового объекта, предназначенная для хранения различных компонентов, которые делают объект более динамичным и значимым. Что добавлять в ваши игровые
объекты — это ваше дело. Существует много компонентов, которые могут внести
огромное разнообразие. Читая эту книгу, вы научитесь использовать их.
ПРИМЕЧАНИЕ
-
Не каждый игровой объект будет изначально пустым. Unity имеет несколько встроенных игровых объектов, которые сразу готовы к использованию. Вы можете найти их, открыв раскрывающийся список GameObject в верхней части редактора Unity.
Большую часть времени мы будем учиться работать со встроенными и пользовательскими игровыми объектами.
ПРАКТИКУМ
& ; -
Давайте уделим некоторое время работе с игровыми объектами. Выполните следующие шаги, чтобы создать несколько основных объектов и изучить их различные компоненты.
Создайте новый проект или новую сцену в существующем проекте.
Добавьте пустой игровой объект, открыв раскрывающийся список GameObject
и выбрав команду Create Empty (вы также можете создать пустой игровой объект,
нажав сочетание клавиш Ctrl+Shift+N в Windows или +Shift+N в macOS).
Посмотрите на панель Inspector и обратите внимание, что игровой объект, который вы
только что создали, не имеет никаких компонентов, кроме Transform (а он есть у каждого объекта). Нажмите кнопку Add Component на панели Inspector, чтобы увидеть все
компоненты, которые вы можете добавить к объекту. Пока не выбирайте ничего.
Преобразования
53
Добавьте в ваш проект куб. Для этого в раскрывающемся списке GameObject установите указатель мыши на пункт 3D Object и выберите вариант Cube из списка.
Обратите внимание на компоненты, которые есть у куба, а у пустого игрового объекта отсутствуют. Компоненты mesh делают куб видимым, а компонент collider дает ему
способность физически взаимодействовать с другими объектами.
Добавьте в свой проект точечный источник света, открыв раскрывающийся список
Create на панели Hierarchy и выбрав пункт Light ⇒ Point Light из списка.
Обратите внимание, что у точечного источника света только один общий с кубом компонент — Transform. В остальном объект полностью ориентирован на то, чтобы испускать свет. Свет, излучаемый точечным источником, дополняет направленный свет,
который присутствует на сцене по умолчанию.
Ранее в этом часе вы узнали и изучили различные системы координат и поэкспериментировали с некоторыми игровыми объектами. Теперь соединим одно
и другое. При работе с 3D-объектами вы часто слышите термин преобразование
(англ. — transform). Все объекты в 3D-пространстве имеют положение, угол поворота и масштаб. Если объединить эти три параметра, вы получите преобразование объекта. Когда нам понадобится изменить их, мы будем говорить «преобразовать». В Unity это реализовано с помощью компонента Transform.
Напомню, что компонент Transform — единственный, который есть у каждого
игрового объекта, даже у пустого. Благодаря этому компоненту вы можете увидеть
текущее состояние объекта и его преобразования. Сейчас это может показаться
вам странным, но все довольно просто. Вы разберетесь с этим в кратчайшие сроки. Поскольку преобразование включает в себя положение, угол поворота и масштаб, значит, существуют три способа изменить его: перемещение, вращение
и масштабирование. Эти действия можно выполнить с использованием панели
Inspector или с помощью соответствующих инструментов. На рис. 2.4 и 2.5 показано, какие компоненты и инструменты панели Inspector соответствуют различным преобразованиям.
Перемещение
Вращение
Масштаб
Рис. 2.4. Параметры компонента Transform на панели Inspector
54
2-Й ЧАС. Игровые объекты
Перемещение
Масштаб
Комплексное
преобразование
Вращение Растягивание
Рис. 2.5. Инструменты преобразования
ПРИМЕЧАНИЕ
0 Термин Rect (сокращение от Rectangle — прямоугольник) часто встречается у игровых
объектов в 2D. Если 2D-объекты, например спрайты, имеют такие же преобразования, как 3D-объекты, вы можете использовать более простой и удобный инструмент
Rect, чтобы управлять положением, поворотом и масштабированием одновременно.
(Расположение инструмента Rect приведено на рис. 2.5.) Кроме того, объекты пользовательского интерфейса (UI) в Unity имеют еще один тип преобразования, который
называется Rect-преобразованием. В часе 14 мы поговорим о нем более подробно.
Сейчас нам достаточно понимать, что это 2D-эквивалент обычного преобразования,
который применяется исключительно для редактирования пользовательского интерфейса.
Процесс изменения координат объекта в трехмерной системе называется перемещением, и это самое простое преобразование, которое можно применить к объекту. Когда мы перемещаем объект, он сдвигается вдоль осей. На рис. 2.6 показано
перемещение квадрата вдоль оси x.
Рис. 2.6. Пример перемещения
Когда вы используете инструмент Translate (клавиша W) на любом объекте,
на панели Scene возникают кое-какие изменения. Если конкретно, то появляются три стрелки, направленные от центра объекта по трем осям. Это гизмо перемещения, позволяющий передвигать объекты по сцене. При нажатии и удержании
Преобразования
55
любой из этих стрелок они окрашиваются в желтый цвет. Затем, если вы подвинете мышь, объект начнет перемещаться вдоль выбранной оси. На рис. 2.7 показан
пример гизмо перемещения. Обратите внимание, что гизмо появляются только
на панели Scene.
Рис. 2.7. Гизмо перемещения
СОВЕТ
Transform
# В Unity предусмотрено два способа управлять преобразованием объектов. Важно
знать, когда использовать каждый из них. При изменении преобразования объекта на панели Scene с помощью инструмента преобразования вы также изменяете
значения параметров, перечисленных на панели Inspector. Часто бывает проще
вносить изменения в преобразования объекта с помощью панели Inspector: так
вы непосредственно указываете требуемые значения. В то же время инструменты
преобразования более полезны для внесения оперативных и небольших изменений. Если вы научитесь применять оба способа, ваша работа станет значительно
легче.
56
2-Й ЧАС. Игровые объекты
Когда мы вращаем объект, он не перемещается в пространстве. Вместо этого изменяется положение объекта по отношению к пространству. Проще говоря, вращение позволяет переопределить направления осей x, y и z для конкретного объекта.
На рис. 2.8 показан пример вращения квадрата вокруг оси z.
Рис. 2.8. Вращение вокруг оси z
СОВЕТ
Если вы не знаете, вокруг которой из осей нужно повернуть объект, чтобы получить
желаемый эффект, вы можете использовать простой мысленный трюк. Выберите ось
и представьте, что объект зафиксирован на месте с помощью штифта, установленного параллельно этой оси. Объект может вращаться только вокруг этого самого штифта. Теперь определите, какой именно штифт позволит объекту вращаться так, как вам
нужно. Это и будет ось, относительно которой вам нужно повернуть объект.
Так же, как и в случае с инструментом Translate, вы можете выбрать инструмент
Rotate (клавиша E), чтобы вокруг объекта появился гизмо вращения. Такие гизмо представляют собой окружности вращения объекта вокруг осей. При нажатии
и удержании любой окружности она окрашивается в желтый цвет, и после этого
вы сможете вращать объект относительно выбранной оси. На рис. 2.9 показано,
как выглядит гизмо вращения.
Преобразования
57
Рис. 2.9. Гизмо инструмента Rotate
< 1
Масштабирование — это увеличение или уменьшение объекта в 3D-пространстве.
Такое преобразование вполне понятно и просто в использовании. Масштабирование объекта относительно любой оси приводит к изменению размера объекта
относительно этой оси. На рис. 2.10 показано уменьшение квадрата относительно осей x и y. На рис. 2.11 показан гизмо масштабирования, который появляется,
когда вы выбираете инструмент Scaling (клавиша R).
Рис. 2.10. Масштабирование по осям x и y
58
2-Й ЧАС. Игровые объекты
Рис. 2.11. Гизмо масштабирования
Как упоминалось ранее в этом часе, в преобразованиях используется локальная
система координат. Таким образом, внесенные изменения могут повлиять на будущие преобразования. Например, на рис. 2.12 показано, как одни и те же преобразования, выполненные в обратном порядке, дают в итоге разный результат.
Рис. 2.12. Влияние последовательности выполнения преобразований на результат
Преобразования
59
Как видно из рисунка, пренебрежение правильным порядком преобразований
может привести к неожиданным последствиям. К счастью, результаты преобразований предсказуемые, их можно запланировать.
XПеремещение.
Перемещение — это довольно инертное преобразование.
То есть любые последующие изменения, как правило, от его результата
не страдают.
XВращение.
Вращение изменяет ориентацию локальной системы. Любые
перемещения, выполненные после вращения, происходят уже по новым
осям. Если вы захотите, например, повернуть объект на 180 градусов вокруг
оси z, а затем переместить его в положительном направлении у, то объект
будет двигаться вниз, а не вверх.
XМасштабирование.
Масштабирование изменяет размер локальной координатной сетки. Это значит, что, масштабируя объект, вы на самом деле
увеличиваете его локальную систему координат. В результате объект увеличивается в размере. Это изменение мультипликативно. Например, если
объекту задать масштаб 1 (его естественный размер по умолчанию), а затем
переместить на 5 единиц вдоль оси x, то объект переместится на 5 единиц
вправо. Если же задать объекту масштаб 2, а затем переместить на 5 единиц
вдоль оси x, то он визуально переместится на 10 единиц вправо. Это связано
с тем, что локальная система координат стала вдвое больше, а 5 × 2 = 10.
И наоборот, если задать объекту масштаб 0,5, а затем переместить, он визуально переместится на 2,5 единицы (0,5 × 5 = 2,5).
Когда вы поймете эти правила, вам будет легче вычислить, как именно объект
изменится после ваших преобразований. Эффекты зависят от выбора параметра
Local или Global, и к ним придется привыкнуть, поэтому вам стоит поэкспериментировать.
СОВЕТ
# )
Последний инструмент сцены на панели инструментов называется Composite (клавиша Y). Он позволяет одновременно перемещать, вращать и масштабировать 3D-объект.
8 $ Настройки расположения гизмо могут показаться новому пользователю непонятными, если он не знает, как они работают. Фактически они определяют положение
и выравнивание гизмо преобразований на панели Scene. На рис. 2.13 показано,
как выравнивание гизмо перемещения изменяется в зависимости от того, выбрали вы локальное или глобальное пространство координат.
60
2-Й ЧАС. Игровые объекты
Кроме того, на рис. 2.14 показано, как изменяется расположение гизмо, если вы
выбрали сразу несколько объектов. Если работает настройка Pivot, гизмо располагается по центру первого выбранного объекта. При настройке Center гизмо располагается и работает в общем центре всех выбранных объектов.
Рис. 2.13. Расположение гизмо при выбранных настройках Local и Global
Рис. 2.14. Расположение гизмо при выбранных настройках Pivot и Center
В целом, вам следует выбирать настройки Pivot и Local, чтобы избежать путаницы
и облегчить свою повседневную работу в Unity.
Резюме
61
$ -
В часе 1 вы узнали, как вложить игровые объекты один в другой на панели
Hierarchy (путем перетаскивания одного объекта на другой). Напомню, что при
этом объект верхнего уровня называется родительским, а другой — дочерним.
Преобразования, применяемые к родительскому объекту, работают обычным
образом. Объект можно перемещать, масштабировать и вращать. А вот у дочерних объектов есть особенности. У вложенного дочернего объекта преобразования
применяются уже относительно родительского объекта, а не относительно глобального пространства. Таким образом, положение дочернего объекта отсчитывается не от начала координат, а от родительского объекта. Если родительский объект вращается, дочерний объект так же перемещается вместе с ним. Но при этом
числовые значения углового положения дочернего объекта не изменяются. То же
самое касается и масштабирования. При масштабировании родительского объекта дочерний объект тоже изменяется в размерах. Но числовой масштаб дочернего
объекта остается прежним. Вас это, наверное, путает. Помните, что преобразования применяются не к объекту, а к системе координат объекта. Поворачивается не объект — поворачивается его система координат. Когда система координат
дочернего объекта привязана к локальной системе координат родителя, любые
изменения в родительской системе координат непосредственно влияют на дочерний объект (при этом в параметрах дочернего объекта изменений не возникает).
89
В этом часе вы узнали все об игровых объектах в Unity. Сначала мы изучили различия между 2D и 3D. Затем мы поговорили о системах координат и о том, как они
математически описывают мир. Затем мы начали работать с игровыми объектами, в том числе с некоторыми из встроенных в Unity объектов. В конце мы изучили три типа преобразований игровых объектов. Вам обязательно нужно поэкспериментировать с преобразованиями, узнать о некоторых возможных опасностях
и посмотреть, как преобразования влияют на вложенные объекты.
Вопрос: Важно ли понимать, в чем разница между 2D и 3D?
Ответ: Да. Даже полностью трехмерные игры до сих пор на техническом уровне
задействуют некоторые понятия, связанные с 2D.
Вопрос: Нужно ли мне срочно научиться использовать все встроенные игровые
объекты?
Download