Предисловие....18
Для кого эта книга....18
Структура книги....19
Как получить от книги максимум....21
Скачивание файлов с примерами кода....22
Скачивание цветных изображений....22
Условные обозначения....22
От издательства....23
О научных редакторах....17
Об авторе....16
1. Знакомство со средой....24
Технические требования....25
Начинаем работу в Unity 2020....25
Если у вас macOS....31
Создание нового проекта....32
Интерфейс программы....34
Использование C# с Unity....35
Работа со сценариями C#....36
Редактор Visual Studio....38
Синхронизация файлов C#....40
Изучение документации....41
Доступ к документации Unity....41
Поиск ресурсов C#....44
Подведем итоги....45
Контрольные вопросы. Работа со сценариями....46
2. Основные элементы программирования....47
Определение переменных....48
Имена важны....49
Переменные — это коробки....49
Понятие метода....53
Методы — это движущая сила....53
Методы — это тоже «коробки»....54
Знакомство с классами....56
Стандартный класс Unity....57
Классы — это шаблоны....57
Работа с комментариями....58
Практичные косые....59
Многострочные комментарии....59
Собираем все воедино....61
Сценарии превращаются… в изящные компоненты....61
Рука помощи от MonoBehavior....63
Связь между классами....64
Подведем итоги....64
Контрольные вопросы. Основные элементы C#....65
3. Погружение в переменные, типы и методы....66
Пишем на C# правильно....67
Отладка кода....68
Объявление переменных....69
Объявление типа и значения....70
Объявление типа без значения....71
Использование модификаторов доступа....71
Выбор уровня безопасности....72
Работа с типами....74
Простые встроенные типы....74
Преобразование типов....78
Предполагаемые объявления....79
Пользовательские типы....79
Итого про типы ....79
Именование переменных....80
Практические рекомендации....80
Понятие области видимости переменных....81
Знакомство с операторами....83
Арифметика и присваивание....84
Определение методов....86
Базовый синтаксис....87
Определение параметров....91
Определение возвращаемых значений....93
Время действовать. Добавляем возвращаемый тип....94
Использование возвращаемых значений....95
Анализ распространенных методов Unity....97
Метод Start()....97
Метод Update()....98
Подведем итоги....99
Контрольные вопросы. Переменные и методы....100
4. Поток управления и типы коллекций....101
Операторы выбора....102
Оператор if-else....102
Оператор switch....112
Контрольные вопросы 1. Операторы if, and и or....117
Знакомство с коллекциями....117
Массивы....117
Списки....121
Словари....124
Контрольные вопросы 2. Все о коллекциях....127
Операторы итерации....128
Цикл for....128
Цикл foreach....131
Цикл while....134
Бесконечность не предел!....136
Подведем итоги....137
5. Работа с классами, структурами и ООП....138
Определение класса....139
Базовый синтаксис....139
Создание экземпляра объекта класса....140
Добавление полей класса....142
Использование конструкторов....143
Объявление методов класса....146
Объявление структур....148
Базовый синтаксис....148
Общие сведения о ссылочных типах и типах значений....150
Ссылочные типы....151
Типы-значения....153
Подключаем объектно-ориентированное мышление....154
Инкапсуляция....155
Наследование....157
Композиция....160
Полиморфизм....160
Итого про ООП....162
Применение ООП в Unity....163
Объекты — это творение класса....163
Доступ к компонентам....165
Подведем итоги....172
Контрольные вопросы. Все об ООП....172
6. Погружение в Unity....173
Основы игрового дизайна....174
Документация игрового дизайна....174
Брошюра о Hero Born....175
Создание уровня....176
Создание примитивов....177
Трехмерное мышление....180
Материалы....182
White-boxing....186
Основы работы со светом....198
Создание источников света....198
Свойства источников света....200
Анимация в Unity....201
Создание клипов....202
Запись ключевых кадров....205
Кривые и касательные....207
Система частиц....211
Подведем итоги....214
Контрольные вопросы. Основные функции Unity....214
7. Движение, управление камерой и столкновения....215
Перемещение игрока....216
Создание игрока....217
Введение в векторы....219
Обработка ввода от игрока....221
Следование камеры за игроком....226
Время действовать. Программируем поведение камеры....226
Работа с физикой Unity....229
Rigidbody в движении....232
Коллайдеры и столкновения....237
Использование триггеров коллайдера....243
Итоги по физике....249
Подведем итоги....250
Контрольные вопросы. Управление игроком и физика....250
8. Программируем механику игры....251
Добавление прыжков....252
Перечисления....252
Работа со слоями-масками....256
Реализация стрельбы....262
Создание экземпляров объектов....263
Следим за размножением GameObject....268
Создание игрового менеджера....270
Отслеживание свойств игрока....270
Свойства get и set....273
Улучшаем игрока....278
Графический интерфейс....279
Условия победы и поражения....283
Использование директив и пространств имен....288
Резюме....290
Контрольные вопросы. Работа с механикой....291
9. Основы ИИ и поведение врагов....292
Навигация с помощью Unity....293
Компоненты навигации....293
Перемещение вражеских агентов....300
Процедурное программирование....300
Механика врага....308
Найти и уничтожить....308
Рефакторинг — держим код в чистоте....317
Время действовать. Создаем метод перезапуска....317
Резюме....319
Контрольные вопросы. ИИ и навигация....319
10. Снова о типах, методах и классах....320
Подробнее о модификаторах доступа....321
Свойства constant и readonly....321
Использование ключевого слова static....322
Вернемся к методам....324
Перегрузка методов....325
Параметр ref....327
Параметр out....329
Подробнее об ООП....330
Интерфейсы....331
Абстрактные классы....334
Расширения класса....336
И снова о пространствах имен....340
Псевдонимы типов....340
Резюме....341
Контрольные вопросы. Новый уровень!....342
11. Знакомство со стеками, очередями и HashSet....343
Введение в стеки....344
Базовый синтаксис....344
Просмотр и извлечение....347
Общие методы....348
Работа с очередями....350
Базовый синтаксис....350
Добавление, удаление и просмотр....351
Общие методы....351
Использование HashSet....352
Базовый синтаксис....352
Выполнение операций....353
Резюме....355
Контрольные вопросы. Сложные коллекции....356
12. Обобщения, делегаты и многое другое....357
Обобщения....357
Обобщенные объекты....358
Обобщенные методы....360
Ограничения типов параметров....363
Делегирование действий....365
Базовый синтаксис....365
Делегаты как типы параметров....367
Запуск событий....369
Базовый синтаксис....370
Обработка подписок на события....372
Обработка исключений....374
Выбрасывание исключений....375
Использование оператора try-catch....378
Экскурс по паттернам проектирования....381
Часто используемые игровые паттерны....382
Резюме....383
Контрольные вопросы. Продвинутый C# ....384
13. Путешествие продолжается....385
Верхушка айсберга....385
Повторим объектно-ориентированное программирование....386
Приближение к проектам Unity....387
Возможности Unity, которые мы не рассмотрели....388
Следующие шаги....389
Ресурсы по языку C#....389
Ресурсы по Unity....389
Сертификаты Unity....390
Резюме....391
Ответы на контрольные вопросы....393
Глава 1. Знакомство со средой....393
Глава 2. Основные элементы программирования....393
Глава 3. Погружение в переменные, типы и методы....394
Глава 4. Поток управления и типы коллекций....394
Глава 5. Работа с классами, структурами и ООП....395
Глава 6. Погружение в Unity....395
Глава 7. Движение, управление камерой и столкновения....395
Глава 8. Программируем механику игры....396
Глава 9. Основы ИИ и поведение врагов....396
Глава 10. Снова о типах, методах и классах....396
Глава 11. Знакомство со стеками, очередями и HashSet....397
Глава 12. Обобщения, делегаты и многое другое....397
Изучение C# через разработку игр на Unity — популярный способ ускоренного освоения мощного и универсального языка программирования, используемого для решения прикладных задач в широком спектре предметных областей. Эта книга дает вам возможность с нуля изучить программирование на C# без зубодробительных терминов и непонятной логики программирования, причем процесс изучения сопровождается созданием простой игры на Unity.В пятом издании изложены последние версии всех современных функций C# на примерах из игрового движка Unity, а также добавлена новая глава о промежуточных типах коллекций. Вы начнете с основ программирования и языка C#, узнаете основные концепции программирования на С#, включая переменные, классы и объектно-ориентированное программирование. Освоив программирование на C#, переключитесь непосредственно на разработку игр на Unity и узнаете, как написать сценарий простой игры на C#. На протяжении всей книги описываются лучшие практики программирования, которые помогут вам вывести свои навыки Unity и C# на новый уровень. В результате вы сможете использовать язык C # для создания собственных реальных проектов игр на Unity.