После прочтения “Unity и C#” и “Изучаем C-sharp через разработку игр на Unity”, решил продложить тему Unity и купил эту книгу. И это оказалась лучшей покупкой за последнее время. В том смысле, что материал просто отличный. Предисловие к этой книге, которое занимает ровно один разворот, написал Jesse Schell. И я с содержанием согласен полностью - в этой книге отличная практическая часть и этого материала достаточно для того, что бы сделать полноценную игру. Включая работу по сети и сборку проекта под разные платформы, работу с музыкой, анимации… Да, тут мало внимания уделяется самому языку C#, да придется что-то решать с ассетами, но вопросы программной части - закрыты. Первые две книги - просто трата времени, в сравнении с этой.

В книге приводятся примеры для версии Unity 2020. Она разбита на три части. В первой части - знакомство с Unity, включая идею компонентов (что-то вроде композиции в ООП), создание игровых объектов из префабов, работа с текстурами, импорт готовых моделей, skybox и пр. Во-второй части книги закрепление материала посредством реализации нескольких простых проектов. Причем, автор идет дальше обычного white-boxing, он учит работе с импортированными объектами. С одной стороны - это скучная часть, с другой стороны без этой части тяжело понять сложности, которые возникают в процессе и как к ним подходить. Как происходит интеграция со сторонними приложениями, вроде GIMP и Blender. В третьей части происходит закрепление материала, если можно так сказать. Из нового там работа по сети и работа с аудио. Дальше закрепление материала на примере игры в стиле point-and-click и сборка приложения. Отличный план.
Забегая вперед скажу, что третью часть книги не проработал, как предыдущие. Не столько по тому, что мне это не интересно, сколько по тому, что уже немного надело мучить книгу. У меня была цель понять, как работать с Unity, и книга раскрывает её полностью, на мой взгляд. Оставшиеся главы для меня - это как готовые рецепты. То есть я к ним вернусь тогда, когда мне придется разбираться с реализацией и появятся реальные вопросы. Как и к двум оставшимся книгам вернусь уже тогда, когда возьмусь за какой-нить небольшой проект. А взяться уже хочется :)
В книге заявлено, что она для тех, кто уже умеет программировать, но не занимался геймдевом. Но, судя по содержанию дальше - все таки какие-то базовые вещи объясняются так, как будто аудитория - дети. Например, описан алгоритм из четырех шагов, для реализации пространства в новом проекте с комментарием о том, что “пусть он вас не пугает”. Вводится очень большое количество терминов, для которого явно не хватает глоссария. Но, его в книге нет, к сожалению.
В целом книга нравится. Например, тут меньше механического копирования материала, не просто “укажите 3.78”, а объясняется откуда взялось это магическое “3.78”, например. Больше определений для разных терминов, прямо перед примерами использования. По крайней мере, это помогает лучше понять и запомнить, что они значат. При это не могу сказать, что примеры проектов сами по себе сложнее, чем в предыдущих книгах.
Наконец-то встретил объяснение кватернионов и углов Эйлера. В том смысле, что до этого в книгах сразу использовались методы, которые используют углы Эйлера и кватернионы, но без всяких лишних слов, просто “так надо”. А вот тут уже встретилась вставка с небольшим объяснением и ссылками на дополнительные материалы. Да, что такое кватернионы в двух словах не объяснить, но хотя бы причины их использования - можно. И это еще один плюс в копилку книжки.
Понравилось то, что в книге приводятся примеры работы с отложенными событиями через корутины. Хотя, сами по себе корутины - это не отложенные события в общем смысле, а скорее инструмент управления потоком выполнения, но использование в таком контексте наверное нормально. Хотя, мне бы не понравилось, если бы ими злоупотребляли, по тому что отлаживать код было бы сложнее. Как по мне, уж лучше более надежные способы, через классическую очередь событий.
Понравилась реализация выстрела через рейкастинг, когда из камеры вылетает воображаемый луч и после определяется, с чем он соприкоснулся. Этот метод куда как интереснее того, как было реализовано в книге “Изучаем C# через разработку игр на Unity”.
Жаль, что некоторые ссылки на дополнительные материалы уже устарели и за ними приходится идти в веб-архив. Хорошо, что там они еще сохранились. При этом некоторые инструменты, вроде Texture Packer, который используется для создания атласов, уже мне знакомы по LibGDX. При проектировании платформера встретил упоминание такого инструмента, как Tiled. Это редактор тайловых карт, если можно так выразиться. Очень хороший и условно бесплатный инструмент.
Добрался до анимации и тут же вспомнил, что примеры нарезки изображений уже встречались в “Unity и C#. Геймдизайн от идеи до реализации”. Правда, там был texture atlas с фиксированными размерами, а тут sprite sheet. Но, импортирование их в Unity проходит одинаково. Конечно, когда речь заходит о импорте текстур с разными размерами из одного атласа, то тут уже надо использовать сторонние инструменты из Unity Asset Store.
Если говорит о анимации, то в книге знакомят с системой Mecanim, которая пришла на замену старой системе. Ее ключевая идея - построение анимации из отдельных “кирпичиков”, анимационных клипов. Это могут быть, например, анимации ходьбы, бега или прыжка. Главная инновация Mecanim в том, что эти клипы не проигрываются хаотично, а управляются через визуальную систему, похожую на блок-схему.
В коде встречаются ошибки, но очень мало. Например, в комментарии к новому фрагменту кода в анимации сказано, что строку надо добавить в метод Start. Хотя, фактически он относится к следующей строке кода, но если человек только знакомится с разработкой - это может сбить с толку.
Приводится пример обмена событиями между GUI и игровой логикой. Причем, для реализации работы с событиями используется сторонний модуль, ссылка на который опубликована там же. Плохо то, что автор не клонировал модуль себе, а оставил ссылку на GitHub, где лежит оригинал. Со временем там чёрт знает что может случится, и протухнуть, и измениться содержание, и вообще… Сама по себе система простая и разобраться с ней не будет никаких проблем. Еще один плюс, пример того, как можно использовать сторонний кода. Хотя, интегрируется этот модуль “методом копирования исходного кода”. Для меня это выглядит как-то немного… дико, что ли.
При этом очень понравилось то, что в этой книге есть описание архитектуры кода. То есть, автор реализует примитивную версия паттерна MVC. Показывает пример паттерна Singleton… То есть, учит хорошему, так сказать. И за это ему еще один плюс.
Как уже говорил в начале, из трех книг, которые я прочел - это точно лучшая. Фактически, для того что бы познакомиться с Unity достаточно только этой. Причем, тут точно нужна электронная версия, так как много всяких манипуляций и кода, которые надо повторять. Без проработки примеров от книги будет мало толку, к этом надо быть готовым. Но! Если говорить о материале, то в книге описан весь цикл разработки, начиная от создания скайбокса и заканчивая деплое приложений, в том числе и работа с сетевым кодом. Даже описан примитивный сервере на PHP!
Если говорить о том, почему эта книга понравилась больше двух предыдущих, то качеством материала и подачей. Во-первых тут нет каких-то вводных частей, которые не касаются темы книги. Во-вторых, выбор проектов для примеров и их реализация - на голову выше. Понимаю, что это субъективно, но всё же. В третьих, само по себе качество кода понравилось больше, да и кода тут будет поболее. Правда, из-за этого и книге придется уделить больше внимания. У меня на две части ушло примерно три недели, при том что я занимался не каждый день. Но, у меня и не было цели познакомиться как можно быстрее. Если есть сильное желание разработотать какой-то MVP, то можно осилить быстрее, и только этой книги будет вполне достаточно. Предыдущие две не дают такого объема знаний, там примеры более простые.
Что касается качества самого издания, то оно повторяет все последние книги издательства “Питер” с мягкой обложкой. Хорошая полиграфия, приятный шрифт, белая плотная бумага. Никаких особых замечаний.
Автор(ы):
- Joe Hocking
Год издания: 2026
Количество страниц: 448
Оценка: 5/5
Издатель: Питер
Ссылка на страницу книги на сайте издательства: https://www.piter.com/product/unity-v-deystvii-multiplatformennaya-razrabotka-na-c-3-e-mezhd-izdanie
Оригинальное название: Unity in Action, Third Edition: Multiplatform game development in C#
Год издания оригинала: 2022