Сегодня простым и понятным языком я расскажу как создать свою первую игру с помощью движка Unity.
Знакомство с Unity
Unity - это один из самых популярных игровых движков для создания 2D и 3D игр. Основными его преимуществами перед другими языками, лично для меня является простой и понятный интерфейс, поддержка множества платформ в том числе Android / iOS и естественно PC. Unity поддерживает разработку игр на языке программирования C#, а так же имеет большое сообщество, где без труда можно найти множество различных ассетов или же узнать ответ на любой существующий вопрос.
Установка Unity
В первую очередь нам необходимо подготовить все необходимые инструменты для работы. Давайте начнем!
1) Установка Unity Hub
Unity Hub - это приложение сообщества, прошу не путать с самим движком. Оно необходимо для просмотра ваших проектов, доступа к сообществу и магазину с моделями.
Скачать Unity Hub можно бесплатно с официального сайта разработчика. Выбирайте персональную версию, так как она спокойно подойдет под все ваши задачи.
2) Затем вам понадобиться пройти процесс регистрации и пожалуйста постарайтесь запомнить свой аккаунт, потому что в будущем с помощью него мы будем скачивать различные 3D модельки.
3) После прохождения этапа регистрации, мы наконец можем скачать сам игровой движок Unity. Выбирайте всегда самую свежую и актуальную версию. Вы как новичок скорее всего не заметите разницу, так как в новых версиях разработчики дорабатывают инструменты для более продвинутых пользователей, которые работают в команде и над коммерческими проектами. Тем не менее наличие этих инструментов может облегчить вам жизнь в долгосрочной перспективе.
Сам процесс установки совсем не быстрый (все зависит от вашего компьютера, но обычно это 5 - 10 минут) поэтому параллельно мы можем переходить на следующий этап.
4) Для разработки игр на Unity нам понадобиться язык программирования C#. Если вы знакомы с любым другим языком хотя бы на уровне переменных, функций и условий, то вы довольно быстро освоитесь и тут. В случае если вы совершенно не знакомы с программированием и даже не знаете как переводится с английского слово "folder", то тогда вам придется тяжело. НО!!! Все возможно, если вам это по-настоящему интересно. Тем более гайдов на YouTube предостаточно и я постараюсь вам помочь.
Чтобы писать на C# мы будем использовать самый оптимальный IDE от компании Microsoft. Скачать его можно с официального сайта в версии комьюнити.
После установки вы можете настроить среду разработки под себя, задав цвет фона, шрифты и так далее.
Гайдов на эту тему предостаточно.
Создание первого проекта
Итак, после установки всех необходимых компонентов мы наконец-то можем создать наш долгожданный проект.
Для этого открываем Unity Hub
1) Ваш аккаунт, преднастройки проектов (2D платформер, 3D, под Android / iOS, от первого лица и т. д.), обучалки, сообщество и скачанные версии Unity.
2) Создание проекта и поиск проектов на компьютере.
3) Список проектов, их название, версии, дата последнего запуска.
Чтобы создать проект необходимо нажать "New project". В следующем окне выбираем 3D шаблон и создаем названием проекту.
желательно все делать на английском языке и без пробелов! Привыкайте, программирование оно такое.
Нажмите "Create project" и у вас начнется загрузка вашего проекта.
Она тоже совсем не быстрая обычно занимает около 2-5 минут.
Для начала давайте детально разберем интерфейс.
Сначала вам покажется, что тут слишком страшно и много всего, но уверяю через какое-то время Вы быстро привыкнете.
1) Снизу располагается раздел Assets / Console
В этом разделе показаны все файлы из которых состоит ваш проект. Тут могут быть абсолютно разные форматы файлов. Картинки, 3D модели, скрипты, звуки, текстовые документы, анимации, материалы (.png, .jpeg, .cs, .fbx, .txt, .mp3 и множество других). В общем все то, что будет использоваться в нашей игре.
Консоль в свою очередь показывает ошибки при запуске проекта, а так же в нее можно выводить сообщения для проверки работы той или иной функции.
2) По середине располагается Scene / Game
Сцена нужна для расстановки объектов, если хотите для левел-дизайна. Тут мы как боги имеем возможность расставлять, двигать объекты, вертеть, менять цвета. Выставлять камеру, персонажа, окружение и прочее. А в разделе Game мы видим созданный нами мир так, как будет видеть его игрок.
3) Слева сверху на сцене расположены классические элементы управления. Давайте пробежимся по ним:
Рука - позволяет двигать камеру сцены (это не игровой объект Camera, а только ваш вид как разработчика).
Стрелки - добавляют стрелки к выделенному объекту, взявшись за которые его можно двигать по всем 3 осям (X, Y, Z). Соответственно в 2D игре ось Z будет отвечать за многослойность относительно камеры игрока.
Вращение - инструмент позволяет вращать объект так же по всем 3 осям.
Осевое увеличение - инструмент позволяет менять размер по любой оси.
Относительное увеличение - инструмент позволяет менять размеры объектам сразу по всем 3 осям, чтобы не сбить его размеры относительно друг друга.
Ну и последний инструмент - это просто мультитул в котором представлены все перечисленные инструменты вместе.
Крайне неудобная вещь, поэтому не советую ей пользоваться.
Для взаимодействия со сценой не обязательно постоянно переключаться между этими инструментами. Все эти действия можно сделать руками:
Зажмите ЛКМ и вращайте мышкой
Добавьте к зажатому ЛКМ + WASD и вы можете перемещаться на сцене
ПКМ можно выделить группу объектов
СКМ используем как прицел чтобы приблизиться или отдалиться от объектов
СКМ + зажатая ЛКМ позволяет менять скорость передвижения
Двойной щелчок по объекту в иерархии находит объект на сцене
Ну а все остальное как и во всех программах копировать (ctrl+c), вставить (ctrl+v), действие назад (ctrl+z), действие вперед (ctrl+y), быстрое сохранение (ctrl+s) и так далее.
4) Камера. Она показывает то, как видит сцену игрок.
Выведена отдельно для удобства перемещения камеры на сцене.
5) Инструменты запуска сцены. При нажатии на кнопку пуск запуститься игра, вас автоматически перенесет в раздел Game, где вы можете делать все то, что изначально создали и запрограммировали, сейчас же в нашей игре пока ничего нет, но тем не менее ее уже можно запустить. Чтобы остановить игру необходимо еще раз нажать на кнопку пуск и тогда вас вернет в раздел Scene. ОЧЕНЬ ВАЖНО!!! Всегда проверяйте, что вы именно ВЫКЛЮЧИЛИ игру, а не поставили ее на паузу, потому что ВСЕ изменения которые вы вносите должны быть при выключенной игре, иначе при перезапуске они просто не сохранятся. Пауза же в свою очередь нужна только для того, чтобы в ручном режиме переключиться на сцену и что нибудь пододвинуть, только ради эксперимента, на одну попытку.
6) Раздел Hierarchy. Проще говоря иерархия объектов (дерево объектов). В нем представлены все объекты, которые располагаются у вас на сцене (уровне). Через него объекты мы будем искать и выделять для последующего изменения. ИМЕННО ЧЕРЕЗ ИЕРАРХИЮ, а не через сцену!!!
Прошу вас на первых парах возьмите сразу за привычку, то что объекты нужно выделять именно так. Я понимаю что гораздо привычнее тыкнуть мышкой на объект, который мы видим, чем искать название этого объекта в дереве, но так как вы тут первый раз, вы еще невнимательны и случайно нажав на один объект на сцене вы можете выделить группу других объектов или же взять дочерний объект из которого состоит ваша основная модель, произвести с ним кучу махинаций, а потом понять, что все это делали не на том объекте.
7) Inspector (инспектор свойств). Вот тут будет сложно. Свойства это набор различных параметров и функций. У каждого объекта набор свойств сугубо индивидуальный, да он может быть аналогичный, если на сцене есть два одинаковых объекта, но в любом случае как минимум хотя бы 1 координата будет отличаться.
По сути все обучение Unity сводиться как раз к изучению этих самых свойств, а они тут представлены в огромнейшем наборе.
Давайте разберем базовые компоненты которые могут нам сегодня пригодится:
Transform - компонент отвечает за позиционирование объекта на сцене. Из видимых параметров есть позиция, поворот и размер.
Camera - компонент камеры поможет изменить вид игрока, отрегулировать угол обзора, наложить какой-то фильтр и прочее.
Rigidbody - компонент отвечает за базовую физику в игре. С его помощью можно регулировать гравитацию, массу, скольжение и т. п.
8) Панель инструментов Unity. Подробно останавливаться мы тут не будет, потому что здесь огромный инструментарий. Скажу вкратце через File -> Save Project можно сохранить проект, а через File -> Build settings можно сделать готовый .exe файл с игрой, но об этом в другой раз.
Добавление объектов на сцену
В качестве закрепления знаний предлагаю Вам сегодня добавить на сцену несколько объектов. Нажмите ПКМ в пустое место в иерархии, выберите 3D Object -> Plane. Выберите объект и в инспекторе свойств поменяйте ему название на "Ground". А затем по точно такой же логите сделайте из стандартных объектов Cube вот такую лестницу.
Для того чтобы ее выставить вам понадобиться использовать компонент transform, а именно менять позицию (двигать объекты на сцене) и размер.
Снизу в ассетах нажмите ЛКМ и Create -> Material. Создайте материал и задайте ему любой цвет. Материалы это текстурки для наших моделей. Расставьте цвета как чувствуете.
Домашнее задание
У Unity как и у любого информационного творения есть документация. А так как мы теперь нубики программисты нам необходимо изучать документацию прежде чем мы возьмемся за работу с новыми инструментами. Поэтому рекомендую Вам в ожидании второй части почитать про компоненты transform, Rigidbody и BoxCollider.
Заключение
Победа! Самый тяжелый шаг - это первый. И сегодня мы сделали большой шаг на встречу геймдеву и Unity в том числе. Если вы все сделали правильно, то поздравляю, теперь мы можем сохранить проект (ctrl+s) и ждать вторую часть, где мы уже будем писать наши первые скрипты. А на сегодня у меня все, всем спасибо за внимание и удачи.