
Полная версия
Шутер как конструктор. Собери и опубликуй свою игру на Unity из готового шаблона
- Learn Unity (learn.unity.com): Unity предлагает широкий выбор бесплатных учебных материалов и курсов, которые подойдут как для новичков, так и для продвинутых разработчиков. Здесь вы найдёте пошаговые инструкции по работе с Unity и разборы практических кейсов.
- Unity Dashboard (cloud.unity.com): в этой панели управления объединены различные аналитические и монетизационные инструменты, которые помогают отслеживать прогресс проекта, взаимодействие пользователей с игрой, а также управлять рекламой и покупками внутри приложения.
Таким образом, использование единой учетной записи для всех сервисов Unity не только упрощает процесс авторизации, но и делает разработку более эффективной, так как все нужные инструменты и ресурсы доступны в одном месте.
4. После того как вы создали и вошли в свой аккаунт Unity, откроется окно приложения Unity Hub. В центральной части приложения указаны проекты (Projects), с которыми вы работаете. Если вы используете Unity впервые, то это окно у вас должно быть пустым, однако очень скоро в нем начнут появляться созданные вами проекты, и Unity Hub будет выглядеть наполненным самыми разными проектами:

Изображение выглядит как снимок экрана, текст, программное обеспечение, Мультимедийное программное обеспечение Автоматически созданное описание
5. Теперь перейдем к установке редактора Unity. Оставаясь в Unity Hub нажмите кнопку Installs [1] в левом меню и далее - Install Editor [2]. Из Unity Hub можно запускать множество разных версий среды разработки Unity.

Изображение выглядит как снимок экрана, текст, программное обеспечение, Мультимедийное программное обеспечение Автоматически созданное описание
6. После этого откроется окно выбора версий Unity для установки. Рекомендуется установить последнюю стабильную версию Unity, если вы опытный пользователь. Для начинающих пользователей лучше использовать версию Unity, по которой составлено это руководство. Рекомендуемая версия (Recommended Version) всегда является последней стабильной версией Unity, которая автоматически выделяется в списке. Для этой книги используйте последнюю стабильную версию Unity 6 (она же будет отмечена как Recommended Version). Для установки, в окне Install Unity Editor – Official Releases выберите и установите Recommended Version. Чтобы начать установку, нажмите кнопку Install.

Изображение выглядит как снимок экрана, программное обеспечение, Мультимедийное программное обеспечение, текст Автоматически созданное описание
Если позднее вы захотите скачать любую другую версию Unity, перейдите в раздел Archive – download archive и найдите интересующую вас версию на сайте разработчика. Установка конкретной версии Unity может потребоваться в том случае, если вы нашли исходники некоторых сборок игр на таких ресурсах как github, либо купили исходники в unity asset store:

Изображение выглядит как снимок экрана, текст, программное обеспечение, Мультимедийное программное обеспечение Автоматически созданное описание
7. После того как вы нажали на кнопку Install, в следующем окне следует выбрать дополнительные модули. Напомню, что Unity позволяет создавать игры под самые разные платформы. Например, если в дальнейшем вы захотите сделать игру под мобильное устройство, то все что вам потребуется – это установить модули Android Build Support и iOS Build Support. На данном шаге нам потребуется установить среду разработки для работы с кодом. Для создания сценариев на Unity используется язык программирования C# и в самом верхнем списке вам предлагается установить Microsoft Visual Studio (если вы работаете на Windows) или Visual Studio for Mac (если вы работает на соответствующей операционной системе). Поставьте галочки напротив:
- модуля Visual Studio чтобы сразу скачать и установить среду для работы с кодом (поставьте флажок напротив модуля Visual Studio),
- WebGL Build Support, что позволит нам создавать сборку проекта под браузерные игры,
- нажмите кнопку Install:

Изображение выглядит как снимок экрана, текст, программное обеспечение, Мультимедийное программное обеспечение Автоматически созданное описание
Скачивание и установка модулей и среды разработки займет некоторое время, которое зависит от скорости вашего интернет-соединения
8. Когда скачивание завершится, произойдет автоматическая установка всех компонентов, и на этом процесс установки завершен. Если в дальнейшем вам понадобятся другие версии среды разработки Unity (например, вы найдете и захотите посмотреть готовые проекты, сделанные под более ранние версии среды разработки), - то вы всегда сможете открыть Unity Hub, перейти во вкладку Install и скачать недостающие версии Unity и модули, нажав кнопку Install Editor. Таким образом, Unity Hub является своего рода “точкой старта”, из которой происходит создание новых проектов (вкладка Projects), установка различных версий Unity (вкладка Installs) и т. д.
9. По итогу пошагового выполнения пунктов выше, у вас:
- должна быть установлена среда разработки Unity,
- среда для работы с кодом: Microsoft Visual Studio (для работы из-под Windows) или Visual Studio (для работы из-под Mac или Linux),
- создана учетная запись на сайте Unity.com. Не теряйте ее, так как эту учетную запись вы можете использовать для работы в других сервисах Unity.
Первый проект: проверяем, что всё работает
Создадим простейшую сцену чтобы проверить корректность работы всех установленных программных пакетов. По традиции принято создавать программу, которая выводит сообщение «Hello World» в терминал. В нашем примере мы не только выведем сообщение, но и научимся взаимодействовать с объектами на среде Unity.
1. Чтобы создать первый проект на Unity, откройте Unity Hub и перейдите во вкладку Projects. Нажмите New project чтобы перейти в окно создания нового проекта:

2. В появившемся окне нужно выбрать тип проекта - 3D, дайте имя новому проекту, например HelloWorld_01. Проверьте путь к папке, в которой будет создан проект (здесь скорее важно, чтобы вы осознанно указали папку для проекта и не потеряли его в дальнейшем). После этого нажмите Create project:

Изображение выглядит как текст, снимок экрана, программное обеспечение, Мультимедийное программное обеспечение Автоматически созданное описание
Проект будет создан и открыт в новом окне Unity. Первый запуск проекта может быть длительным, так как создаются необходимые зависимости в библиотеках проекта. На рисунке ниже показано, как выглядит запущенная среда разработки. На данном этапе вам может показаться, что среда содержит довольно большое количество разнообразных и непонятных окон, но в дальнейшем мы разберемся, как они устроены и за что отвечают ее отдельные элементы:

4. Теперь мы готовы к тому, чтобы начать работу. Первым делом создадим новый C# Script-файл с простой командой, которая выводит сообщение “Hello World”. Для этого на панели Project перейдите в папку Assets, в данный момент в ней находится только одна папка с названием Scenes. Кликните правой кнопкой мыши внутри папки Assets и выберите из контекстного меню Create - C# Script, как показано ниже:

5. Назовите созданный скрипт-файл HelloWorld. Содержимое папки Assets после этого должно выглядеть так, как показано на рисунке ниже:

Изображение выглядит как текст, снимок экрана, Мультимедийное программное обеспечение, программное обеспечение Автоматически созданное описание
6. Откройте созданный файл HelloWorld.cs, кликнув по нему дважды. Файл автоматически откроется в Visual Studio, если этого не произошло автоматически, зайдите в Unity – Preferences (или Settings для Mac) – External Tools – External Script Editor – убедитесь, что выбрано Visual Studio и откройте скрипт-файл еще раз. Содержимое файла и вид среды разработки показаны на рисунке ниже:

7. Когда мы перейдём к разработке игры, программный код будет представлен как в виде скриншотов, так и в виде листинга (текста). Это сделает его удобным для восприятия. В случае использования электронной версии книги вы сможете легко копировать и вставлять фрагменты кода непосредственно в ваш проект, что ускорит процесс разработки. Обратите внимание на то, что внутри кода выше содержится два метода: void Start() и void Update().
- void Start() — метод, который вызывается один раз при запуске сцены в Unity. Все команды, написанные внутри фигурных скобок этого метода, будут выполнены при старте игры. Этот метод удобно использовать для начальной инициализации объектов, настройки переменных или загрузки данных.
- void Update () – метод, который вызывается каждый кадр в течение работы сцены. В него нужно писать функционал, который требует постоянного обновления. Например, в этот метод добавляют логику движения объектов, проверку ввода от игрока или обновление интерфейса.
8. Добавьте строку кода, которая будет выводить сообщение «Hello World». Для этого внутрь фигурных скобок метода void Start(), как показано в листинге ниже, нужно написать команду print:

Изображение выглядит как текст, снимок экрана, программное обеспечение, Значок на компьютере Автоматически созданное описание
9. Скрипт-файл с названием HelloWorld.cs написан. Однако, чтобы он начал работать, нам следует его подключить к одному из игровых объектов внутри сцены Unity. Давайте создадим такой объект, например, простейший куб.
10. Все объекты на сцене находятся в окне иерархии объектов (Hierarchy в левой части среды разработки). Пока мы ничего не создали, но можете обратить внимание что на сцене уже существует камера (Main Camera), которая играет роль глаз игрока и освещением Direction Light, без которого на сцене было бы значительно темнее. Чтобы создать игровой объект “Куб”, кликните правой кнопкой мыши (ПКМ) внутри окна Hierarchy и в выпадающем меню выберите GameObject - 3D Object - Cube:

Изображение выглядит как текст, программное обеспечение, Мультимедийное программное обеспечение, Графическое программное обеспечение Автоматически созданное описание
11. Таким образом, на сцене появится новый игровой объект Cube. Приблизить куб можно с помощью колесика мыши. Чтобы подключить скрипт HelloWorld.cs к объекту Cube, можно просто перетащить (зажав левую кнопку мыши) скрипт-файл на куб.

12. Теперь, если на сцене выделить объект Cube, кликнув по нему левой кнопкой мыши, то можно увидеть, что в правой части среды разработки (окно Inspector) к кубу в качестве компонента подключился файл HelloWorld.cs (Script-файл).
13. Теперь вы можете запустить сцену и проверить ее работу. Для этого нужно нажать кнопку Run в верхней центральной части среды разработки.

14. Обратите внимание, что на сцене статично висит куб и кажется, что ничего не происходит, но если перейти в окно Console (в нижней части среды разработки), то можно заметить, что при старте сцены, в окно было отправлено сообщение:

Изображение выглядит как снимок экрана, Мультимедийное программное обеспечение, Графическое программное обеспечение Автоматически созданное описание
15. Остановите симуляцию сцены, нажав кнопку Run еще раз. Не забывайте выключать симуляцию сцены, так как изменения, которые вы вносите в редакторе, не будут сохраняться при запущенной сцене.
Вместо функции print, можно использовать функцию Debug.Log(), которая является частью движка Unity. Отличие функции Debug.Log() от функции print() заключается в том, что print() не позволяет увидеть какую-либо информацию, после сборки проект. То есть print() выводит информацию только в консоль среды разработки Unity, тогда как функция Debug.Log() выводит сообщение в специальный файл в папке проекта при запуске готовой игры, содержимое которого потом можно просмотреть. По сути, обе эти функции делают одно и тоже, но рекомендуют использовать именно Debug.Log(). В качестве эксперимента вы можете заменить функцию print(“Hello World”) в листинге выше на функцию Debug.Log(“Hello World”).
16. Обычным сообщением в окне консоли сложно удивить, особенно если речь идет о разработке игры. Поэтому давайте добавим еще немного функций для наглядности. Следует отметить, что многие моменты, связанные с разработкой игры, на себя берет Unity без необходимости написания кода. Иногда даже очень сложный функционал в игре можно реализовать просто настройками внутри среды разработки Unity. Продемонстрируем это на примере ниже.
17. Сделаем так, чтобы созданный 3D объект Cube при запуске сцены падал вниз. Для этого выделите объект Cube (клик левой кнопкой мыши в окне объектов Hierarchy), после этого в правой части среды разработки станет активно окно Inspector для выбранного игрового объекта - куба.
18. Содержание окна Inspector зависит от типа выбранного объекта. В нем содержатся свойства объекта, его параметры, подключаемые Script-файлы и т. д. Нажмите в нижней части окна Inspector кнопку Add Component. После этого появится список с перечнем компонентов, которые могут быть подключены к выбранному объекту Cube. Найдите с помощью поиска компонент Rigidbody и кликните по нему левой кнопкой мыши так, чтобы он добавился в окно Inspector.

Изображение выглядит как Мультимедийное программное обеспечение, программное обеспечение, Графическое программное обеспечение, Значок на компьютере Автоматически созданное описание
20. Компонент Rigidbody добавляет объекту свойства физики твердого тела, определенного в базовом движке Unity. Другими словами, если назначить этот компонент объекту, то он начнет вести себя в соответствии с законами механики: иметь массу, участвовать в упругих столкновениях, действовать на другие объекты с теми же свойствами и так далее. Запустите сцену еще раз (нажмите Run) и убедитесь, что теперь объект Cube начинает падать вниз. Если куб начал падаль вниз, поздравляю, вы все сделали правильно. Можете отключить симуляцию сцены, нажав кнопку Run еще раз.
21. Создадим еще один объект - плоскость (Plane), которая будет ограничивать падение куба за пределы начальной сцены. Для этого выполните действия, которые уже выполнялись при создании объекта Cube, - в верхней части меню выберите GameObject - 3D Object – Plane (или клик ПКМ в окне иерархии объектов GameObject - 3D Object – Plane):

Изображение выглядит как текст, снимок экрана, программное обеспечение, Мультимедийное программное обеспечение Автоматически созданное описание
22. Также обращу внимание на то, что, изменяя параметры объекта Transform, можно изменять его положение или ориентацию на сцене. Так, например, изменив угол падения света Direction Light, можно делать так чтобы на сцене «наступил вечер»:

Изображение выглядит как Мультимедийное программное обеспечение, программное обеспечение, Графическое программное обеспечение, снимок экрана Автоматически созданное описание
22. После создания плоскости переместим ее немного ниже уровня объекта Cube. Для этого выделите объект Plane в окне Scene и можете изменить значения Transform для перемещения, или выберите инструмент перемещения Move Tool, кликнув на ось Y сдвиньте плоскость Plane ниже куба. Используя Move Tool, вы можете двигать объекты на сцене:

23. Запустите сцену еще раз. Теперь объект куб (Cube) падает на плоскость (Plane) при старте сцены.
24. Теперь добавим немного интерактивности. Откройте скрипт-файл, который мы создали ранее с именем HelloWorld.cs и напишите туда небольшой функционал, который будет уничтожать объект Cube при нажатии клавиши пробел. В программном коде ниже показано содержимое файла HelloWorld.cs, а рамкой выделены новые строки кода, которые нужно ввести дополнительно:

Изображение выглядит как текст, снимок экрана, программное обеспечение, веб-страница Автоматически созданное описание
В листинг были добавлены следующие строки кода:
- создается условие if, которое уничтожает объект с помощью команды Destroy при нажатии клавиши Space. При этом используется метод Input.GetKeyDown, который срабатывает, после того как игрок нажал клавишу. В скобках Destroy указана конструкция this.gameObject, которая означает что нужно удалить this (этот) игровой объект (game object), то есть тот самый к которому подключен скрипт-файл.
25. Запустите сцену и проверьте, что она работает следующим образом:
- В окно Console выводится сообщение “Hello World”;
- Куб (Cube) начинает падать;
- Куб падает на плоскость Plane и останавливается;
- При нажатии на клавишу пробел объект Cube удаляется.
Что дальше
После прохождения данного раздела вы получили общее представление о том, как работает игровой движок Unity и что необходимо для создания первого тестового проекта. Вы научились устанавливать Unity, создавать сцены, добавлять игровые объекты и писать простые скрипты на языке C#. Это лишь первые шаги на пути освоения игрового программирования, но они важны для построения более сложных и интерактивных проектов в будущем.
Теперь вы знаете, как использовать такие методы, как void Start() и void Update(), чтобы инициализировать объекты при запуске сцены и обрабатывать события каждый кадр. Вы также научились подключать скрипты к игровым объектам, добавлять физику в проект с помощью компонента Rigidbody и даже создавать простейшую интерактивность — например, удаление объекта при нажатии клавиши.
На этом этапе ваши навыки можно назвать основами игрового программирования на Unity. Дальнейшее освоение платформы предполагает более глубокую работу с игровыми объектами, скриптами и функционалом Unity. В следующих главах мы перейдем к созданию более сложных механик и изучению дополнительных возможностей движка. Понимание того, как работают базовые функции Unity, позволит вам продолжать развиваться и создавать более сложные и интересные игры.
После завершения всех пунктов рекомендуется вернуться в начало раздела и еще раз внимательно просмотреть всю последовательность действий. Попробуйте самостоятельно внести модификации в некоторые пункты на свой выбор. Так вы сможете более детально разобраться в устройстве взаимосвязей между объектами, скрипт-файлами и некоторыми элементами интерфейса Unity. Ниже приведен некоторый список возможных изменений в проекте Unity, который вы можете внести, опираясь на те инструкции, которые были даны в этом разделе:
- Сделайте так, чтобы в Console выводилось сообщение “Goodbye World”.
- Добавьте на сцену больше объектов произвольной формы, измените их размер, положение и ориентацию. При добавлении на объекты компонентов Rigibdoby они будут сталкиваться и падать.
- Создайте новый скрипт-файлы, чтобы разные объекты могли быть удалены со сцены при нажатии разных клавиш на клавиатуре.
- Перенесите строку кода print("Hello World"); из фигурных скобок метода Start() в фигурные скобки метод Update(), и проверьте работу сцены. Что изменилось в выводе в командной строке Console? В качестве подсказки отметим, что метод Update обрабатывается каждый кадр, тогда как метод Start отрабатывает лишь один раз при старте сцены.
Глава 1. Быстрый старт от проекта до игры
Сначала результат — потом теория. Так интереснее.
Введение
Обычно учебники по разработке игр устроены так: сначала десятки страниц теории, потом ещё столько же про код — и только где-то к концу, если вы дошли, ваша игра наконец появляется в интернете. Мы сделаем наоборот.
Фишка этой книги — мгновенный результат. Уже в этой, самой первой главе вы пройдёте весь путь целиком: скачаете готовый проект, откроете его в Unity, соберёте браузерную версию и опубликуете её на Яндекс.Играх. В конце у вас будет рабочая ссылка на игру, которую можно отправить другу со словами «зацени, я сделал игру». Без долгой теории — по шагам, как по рельсам.
Зачем так? Потому что ничто так не мотивирует, как живой результат. Когда вы своими руками проведёте игру от проекта до публикации, всё остальное в книге — детальный разбор шаблона, изменение уровней, программирование механик — пойдёт совсем с другим настроем. Вы будете не «изучать абстракции», а улучшать то, что у вас уже работает и опубликовано.
Важно: это «экспресс-прогон». Здесь мы пройдём весь конвейер коротко, без подробных объяснений каждой кнопки — чтобы вы быстро увидели результат. Каждый шаг этой главы подробно разбирается дальше: установка Unity и шаблона — в Главе 2, разбор проекта — в Главе 3, сборка и публикация во всех деталях — в Главе 5. Если на каком-то шаге застрянете — загляните в соответствующую главу и возвращайтесь.
Совет: для этой главы Unity уже должен быть установлен. Если его ещё нет — это минут десять: откройте Главу 2, дойдите до конца установки и возвращайтесь сюда.
А хотите увидеть результат прямо сейчас, не открывая Unity? Игра уже собрана и работает в браузере — откройте ссылку и поиграйте: https://yandex.ru/games/app/223547?draft=true&lang=ru. Это ровно та версия DeepGalacticShooter, которую вы соберёте и опубликуете своими руками к концу этой главы.
1.1 Что понадобится
Для быстрого старта нужно немного, и всё бесплатно:
Установленный Unity (Unity Hub + Unity Editor). Если ещё нет — см. Главу 2, там подробно описано как скачать, но вы просто можете найти на сайт unity.com и попробовать справится с задачей "добычи" инсталлера самостоятельно (в целом не сложнее чем скачать игру из Steam).
Аккаунт на Яндексе — обычная почта на yandex.ru (нужна для консоли разработчика).
Любой современный браузер на компьютере.
План на ближайшие 15 минут: скачать проект → открыть в Unity → собрать билд → залить в консоль Яндекс.Игр → получить ссылку. Поехали.
1.2 Скачиваем проект с Яндекс.Диска
Весь проект я собрал в один компактный архив (около 10 МБ) и выложил на Яндекс.Диск — специально для книги. Служебная папка Library с кэшем в архив не входит: Unity создаст её сам при первом открытии, поэтому файл такой лёгкий.


