Практика работы в редакторе 😏
- Номер 1: Вид сцены. Здесь вы создаете все.
- Номер 2: Вид игры. Здесь вы не можете делать ничего, кроме как играть в игру.
- Номер 3: Все игровые объекты в сцене находятся здесь. Если вы выберете игровой объект в иерархии, он также будет выбран в представлении сцены.
- Номер 4: вкладка Project (Проект). Скрипты, префабы, материалы, спрайты, анимации, звуки и все остальное находятся в окне проекта. Все это — «Активы».
- Номер 5: Инспектор. Здесь находятся все компоненты (скрипты и другие), добавленные к игровому объекту. Когда GameObject выбран в иерархии или в сцене, все компоненты этого GameObject будут показаны здесь.
- Номер 6: Окно консоли. Здесь отображаются сообщения об ошибках, Debug.logs, Warning.
- Номер 7: Окно анимации. Здесь создаются великолепные анимации.
Raycasting
Возможно, вы слышали об этом раньше, когда люди сравнивают игры FPS, основанные на «физике» или «на основе лучей». Raycasting по сути похож на лазерную указку, которая при соприкосновении с «коллайдером» или «твердым телом» возвращает «попадание» и передает детали объекта.
Есть два сценария, в которых это может пригодиться (вероятно, их гораздо больше):
- Если вы разрабатываете систему оружия для игры, вы можете использовать raycasting для обнаружения попаданий и даже настроить длину луча, чтобы предметы ближнего боя «поражали» только на коротких дистанциях.
- Создайте луч от указателя мыши к точке в трехмерном пространстве, то есть если вы хотите, чтобы пользователь мог выбирать юниты с помощью мыши в стратегической игре.
Пример 2, подробно описанный выше
Как видите, код для этого немного сложнее. Ключевой момент, который нужно понять, это то, что для того, чтобы направить луч туда, куда указывает мышь в трехмерном пространстве, требуется преобразование ScreenPointToRay. Причина этого в том, что камера визуализирует трехмерное пространство как двумерное окно просмотра на экране вашего ноутбука, поэтому, естественно, существует проекция для переноса обратно в трехмерную.
Prefabs (Префабы)
Сохранить эти платформы как префабы. Просто перетащите их в папку Prefabs:
Таким образом вы создадите , точно отвечающий оригинальному игровому объекту. Вы увидите, что игровой объект, который вы конвертировали в , представляет собой новый ряд кнопок прямо под его именем:
Создание префабов с объектами-платформами упростит их повторное использование. Просто перетащите Prefab на сцену, чтобы добавить копию. Попробуйте добавить другую платформу таким же образом.
Теперь вы можете добавить больше платформ, меняющих свои координаты, размеры и плоскости (вы можете поместить их на заднем или переднем плане, просто установите координату Z для платформы на ).
На данном этапе все это выглядит еще сыроватым, но в следующих двух главах мы добавим параллаксный скроллинг, и сцена оживет у нас на глазах.
Слои
Прежде чем двигаться дальше, мы модифицируем наши слои, чтобы избежать каких-либо проблем с порядком их отображения. Для этого просто измените позицию игровых объектов по оси Z во вкладке Hierarchy (Иерархия) следующим образом:
Слой | Позиционирование по оси Z |
---|---|
0 — Задний фон | 10 |
1 — Средний фон | 5 |
2 — передний фон |
При переключении из 2D режима в 3D, в окне «Scene» (Сцена) вы будете четко видеть слои:
В следующем уроке:
Вы только что узнали, как создать простой статический фон и как отобразить его должным образом. Затем мы научили вас, как сделать простые спрайты. В следующей главе мы узнаем, как добавить игрока и его врагов.
Обнаружение столкновений
Ранее мы упоминали компоненты Collider и Rigidbody, которые можно добавить к объекту. Правило для столкновений состоит в том, что один объект в столкновении должен иметь твердое тело, а другой — коллайдер (или оба имеют оба компонента). Обратите внимание, что при использовании raycasting лучи будут взаимодействовать только с объектами, к которым прикреплены компоненты коллайдера. После настройки в любом настраиваемом компоненте, прикрепленном к объекту, мы можем использовать методы OnCollisionEnter, OnCollisionStay и OnCollisionExit для реагирования на коллизии. Получив информацию о столкновении, мы можем получить ответственность за GameObject и использовать то, что мы узнали ранее, для взаимодействия с прикрепленными к нему компонентами
После настройки в любом настраиваемом компоненте, прикрепленном к объекту, мы можем использовать методы OnCollisionEnter, OnCollisionStay и OnCollisionExit для реагирования на коллизии. Получив информацию о столкновении, мы можем получить ответственность за GameObject и использовать то, что мы узнали ранее, для взаимодействия с прикрепленными к нему компонентами.
Следует отметить, что твердые тела обеспечивают физику, такую как гравитация, для объектов, поэтому, если вы хотите отключить это, вам нужно будет включить is_kinematic .
Установите флажок «Кинематика», чтобы отключить нежелательную физику, но сохранить хорошее обнаружение столкновений.
Компоненты
Вы добавляете функциональность к объектам GameObject добавлением компонентов (объектов Component). Все, что вы добавляете, — это Component, и все они показываются в окне Inspector. Существуют компоненты MeshRender и SpriteRender, компоненты для звука и функционала камеры, компоненты, относящиеся к физике (коллайдеры и твердые тела ), системы частиц, системы поиска пути, сторонние пользовательские компоненты и др. Чтобы назначить код какому-то объекту вы используете скриптовый Component. Компоненты — это как раз то, что оживляет ваши GameObject добавлением функциональности подобно шаблону Decorator в разработке ПО, только их возможности гораздо интереснее.
Я присвою кое-какой код новому GameObject, в данном случае простому кубу, который можно создать через GameObject | Create Other | Cube. Я переименовал куб в Enemy, а затем создал еще один куб. Как видно на рис. 7, я сместил один куб на –15 единиц от другого, что можно сделать с помощью инструмента Move на панели инструментов или нажатием клавиши W после выделения объекта.
Рис. 7. Текущий проект с двумя кубами
Код — простой класс, который находит игрока и перемещает к нему своего владельца. Обычно операции перемещения осуществляются одним из двух способов: либо вы перемещаете объект в новую позицию на каждом кадре, изменяя его свойство Transform.Position, либо вы применяете к нему физический толчок, а в остальном полагаетесь на Unity.
Покадровые операции требуют несколько иного образа мышления, чем просто «переместить в эту точку». Для этого примера я намерен немного смещать объект на каждом кадре, чтобы иметь точный контроль над тем, куда он движется. Если вас не прельщает перспектива работы с каждым кадром, существуют библиотеки, выполняющие покадровые перемещения всего одним вызовом функции, например бесплатная библиотека iTween.
Первым делом я щелкаю правой кнопкой мыши в окне Project, чтобы создать новый скрипт на C# с именем EnemyAI. Для назначения этого скрипта объекту я просто перетаскиваю файл скрипта из представления проекта на объект в представлении Scene или Hierarchy, и этот код связывается с объектом. Остальное берет на себя Unity. Вот так просто.
На рис. 8 показан куб Enemy с назначенным ему скриптом.
Рис. 8. Enemy со связанным скриптом
Взгляните на код на рис
9 и обратите внимание на открытую переменную. Если вы смотрите на код в Editor, то заметите, что моя открытая переменная появляется с параметром для переопределения значений по умолчанию в период выполнения
Это очень удобно. Вы можете менять значения по умолчанию в GUI для элементарных типов, а также можете предоставлять открытые переменные (но не свойства) многих других объектных типов. Если я перетаскиваю этот код на другой GameObject, создается совершенно отдельный экземпляр этого компонента кода. Это базовый пример, и его можно расширить, добавив, скажем, компонент RigidBody к этому объекту, но я не стану усложнять пример.
Рис. 9. Скрипт EnemyAI
В коде я могу получить ссылку на любой компонент, предоставляемый в редакторе. Кроме того, можно назначать скрипты для GameObject, каждый со своими методами Start и Update (и многими другими методами). Предполагая, что компоненту скрипта, содержащему этот код, требуется ссылка на класс EnemyAI (компонент), я могу просто запросить этот компонент:
После изменения кода в MonoDevelop или в своем любимом редакторе кода и последующего возврата в Unity вы обычно наблюдаете небольшую задержку. Это связано с тем, что Unity выполняет фоновую компиляцию вашего кода. Редактор кода (но не отладчик) можно сменить через Edit | Preferences | External Tools | External Script Editor. Любые проблемы при компиляции в самой нижней строке состояния на экране Unity Editor, так что посматривайте туда. Если вы попытаетесь запустить игру с ошибками в коде, Unity этого не позволит.
Создание проекта
После обучения можно перейти к созданию своей первой игры на Unity с помощью кнопки NEW в меню проектов.
Новому проекту присваивается имя, выбираются место хранения на диске и темплейт — то есть шаблон для разработки, внешний вид и функционал которого зависит от количества измерений в игре. Проще начинать с 2D-проектов, так как для этого формата создано больше готовых ассетов. Конечно, можно сразу начать делать 3D-игры, но в этом случае многие элементы и анимации придется самостоятельно создавать с нуля или выделять бюджет на то, чтобы делегировать эту часть работы другим специалистам.
Начало работы
Работать с движком достаточно легко. Процедура использования приложения сводится к нескольким этапам. Начать необходимо с установки. Сегодня самым удобным вариантом является инициализация через Unity Hub.
Инициализация
Юнити Хаб – совершенно новое приложение. Оно разработано для оптимизации рабочего процесса в движке. Hub выступает в качестве полноценного центра управления Юнити-проектами. С его помощью удается работать с компонентами игры:
- искать;
- загружать;
- организовывать.
Хаб позволит обнаружить совершенно новые возможности через расширенный функционал. Пример – работа с шаблонами.
Для того, чтобы поставить Юнити через Hub, требуется:
Остается кликнуть по кнопке Done и немного подождать. Hub установит Юнити и полностью подготовит его к первому запуску.
Создание проекта
Для того, чтобы получить максимальную отдачу от движка Unity, нужно создать первый проект игры. Это не слишком трудно. Разработчику предстоит:
- Запустить среду программирования. Для этого пригодится ярлычок упомянутого софта.
- Кликнуть по Create Project. На данном этапе можно выбрать шаблон, если он имеется.
- Указать путь сохранения будущей игры.
- Выбрать название проекта.
- Подтвердить процедуру.
На экране появится древо с папками, а также сцена. Там будут «развиваться события» будущей игры на Unity.
Как сделать игру
После того, как клиент научился создавать проекты, нужно их разрабатывать и развивать. Чтобы получить на выходе игровой софт, предстоит:
- Придумать сюжет, физику, задания.
- Создать макеты, а также текстуры. Можно действовать через 3Д-редакторы.
- Разместить компоненты на сцене.
- Добавить текстуры, физику, эффекты.
- Прикрутить к объектам на карте скрипты. Они пишутся заранее. Здесь потребуются навыки непосредственного программирования.
- Добавить триггеры.
После сохранения можно посмотреть, как все работает. Игра будет готова в считанные часы. Особенно если речь идет о небольших проектах.
Отслеживание ошибок
Чтобы отследить ошибку в Sentry, нам нужно вызвать намеренную ошибку. Давайте сделаем орфографическую ошибку в имени нашей лягушки и проверим, найдет ли Unity GameObject лягушки.
Как видно ниже, мы спровоцировали ошибку исключения Null, поскольку не существует GameObject с именем «Frog».
Теперь давайте запустим игру еще раз и посмотрим, как Sentry отследил ошибку.
У нас есть новая необработанная проблема, которую нужно решить. Как только мы обработаем это исключение, мы можем нажать кнопку «Resolve». (Подробнее о том, что еще мы можем сделать для отслеживания ошибок Unity в Sentry, я напишу в одном из следующих постов).
Онлайн образование «Отус»
Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения.
В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
На курсе вы освоите разработку игр на Unity на примере создания 3-х игр:
- создание простой анимации
- Unity UI
- система частиц
- воспроизведение звука
- Tilemap
- 2D-физика
- On- Screen Joystick и Joystick
- Управление камерой с помощью Cinemachine
- создание многопользовательской игры
- освоите 3D — физику и terrain
- Navigation Mesh
- Photon Unity Networking и др.
Для доступа к прошедшим мероприятиям необходимо пройти входное тестирование. Возможность пройти вступительное тестирование повторно появится только через 2 недели.
Unity поддерживает систему визуального программирования Bolt — это плюс для тех, кто не специализируется в программировании
Unity дружелюбен даже для тех, кто вообще не владеет C# — движок уже давно поддерживает систему визуального программирования Bolt, которая помогает писать игровую логику без кода. Можно сказать, что Bolt — это аналог системы Blueprints в Unreal Engine 4.
Пример использования визуального скриптинга в Bolt
Это значит, что в Unity могут работать и те разработчики, которые не специализируются на программировании. К примеру, Bolt позволяет геймдизайнерам быстро прототипировать свои задумки, чтобы сразу же опробовать механики в действии, а левел-дизайнерам — самостоятельно настраивать триггеры на локациях.
Тем не менее Bolt не опускает Unity до уровня простых конструкторов — это всё то же написание логики, но в более понятном и дружелюбном виде.
Дмитрий Лукичев
Технический геймдизайнер Banzai Games
Человеку, который никогда не работал с игровыми движками и не программировал в принципе, будет сложно освоить всё это в короткие сроки. Если есть желание попасть в разработку игр, я бы предложил начать с простого программирования, но если вы уже в геймдеве, но не задействованы в написание кода — визуальный скриптинг отличный выбор.
Unity – это…
Unity3D – популярный игровой движок. Это – среда программирования, которая включает в себя все необходимое для написания собственной игры. Совместима с разными языками.
Развитие Unity началось в 2005 году. С тех пор можно создавать как мелкие, так и крупные проекты развлекательного характера с минимальными знаниями и умениями в области коддинга.
Юнити позволяет использовать скрипты в процессе работы. Это значительно упрощает и ускоряет написание проектов. Выделяется доступностью и понятным интерфейсом. В этой среде комфортно работать почти всем программерам.
Что умеет
Представленная система предоставляет готовые физические модели для взаимодействия между элементами виртуальной сцены на экране. Это дает возможность программеру избежать проработки поведения каждого элемента в кадре.
Unity умеет многое:
- Обладает собственным физическим движком. Он предусматривает законы, а также правила и принципы взаимодействия компонентов игры или иного софта на экране.
- При помощи встроенных библиотек дает возможность «играть» с параметрами физики мира.
- Присутствует имитация физических явления и объектов на основе частиц. Пример – осадки. Прорисовывать и прописывать все вручную в Unity3D нет никакой необходимости.
- Присутствует компонент физики твердых и мягких тел.
- Есть система наследования, которая позволяет копировать свойства и поведение «родителей» установленного на сцене компонента. Скрипты же будут прикрепляться к объектам обособлено друг от друга.
- Использование C# для начинающих. Данная особенность дает возможность даже новичкам писать игры и куски кодификаций. Пример – квесты.
- Есть поддержка Drag&Drop. Она необходима в Unity для того, чтобы управлять сценами, проводить отладку оных и редактировать игру без постоянного переключения между окнами.
- Визуальный редактор умеет работать с шейдерами и картами. Прикрепляется после назначения первого.
- Присутствует поддержка импорта с 3DsMax, Blender и иных 3D-редакторов.
Редактор Unity – отличное средство для создания собственной игры на совершенно любой платформе.
Создание первого проекта на Unity: как сделать управление персонажем в 3D
После установки программы давайте попробуем создать свой первый проект на игровом движке. Мы сделаем основу для 3D-игры: сконструируем простую сцену, добавим персонажа и научим его двигаться.
Кстати, для удобства мы подготовили подробную видеоинструкцию, вы найдете ее здесь:
Для начала нам необходимо подготовить сцену. Можно выбрать обычный Plane (плоскость) в качестве карты и Sphere (сферу) в роли персонажа. Чтобы добавить эти 3D-объекты, нужно нажать в левом меню (оно называется Hierarchy или Иерархия) на +, затем – на 3D Object → Plane (или Sphere).
Разделим игровую сцену на два компонента. Первый из них станет площадкой, по которой и будет перемещаться наш персонаж. Скорректировать местоположение сферы можно, потянув за стрелки.
Игровое поле для программирования движения персонажа-сферы
Необходимо, чтобы у персонажа был подключен Collider. В таком случае при столкновениях (коллизиях) наш герой будет двигаться. Коллайдер добавляется в правом нижнем углу, для этого нужно поставить галочку.
Далее нам понадобится компонент Rigidbody, чтобы оживить персонажа. Rigidbody отвечает за физику героя, то есть за его физическое поведение, реакцию на гравитацию. В настройках в правом нижнем углу экрана выбираем Add Component → Physics → Rigidbody.
Дальше мы будем прописывать скрипт для движения персонажа на языке C#.
Чтобы создать скрипт, необходимо нажать правой кнопкой мыши в области сцены. Далее в открывшемся окне выбираем Create → С# Script. Даем скрипту название, оно обязательно должно быть на английском языке. У нашей программы название PlayerController.
Прописываем в скрипте четыре переменные типа float, от которых будет зависеть скорость передвижения персонажа по всем осям координат.
В нашей программе будут использоваться такие переменные, как movementSpeed (скорость передвижения), turningSpeed (скорость поворота), vertical (перемещение по вертикали) и horizontal (перемещение по горизонтали).
Затем в переменную horizontal мы запишем движение по горизонтали, умноженное на скорость поворота и Time.deltaTime (это поможет сгладить действия). Наш объект будет поворачиваться по оси Y.
С переменной vertical все очень похоже: записываем движение по вертикали, умноженное на скорость движения и на Time.deltaTime. Благодаря этой переменной наш персонаж будет перемещаться по оси Z.
Обязательно сохраняем программу с помощью клавиш Ctrl+Shift+S. Скрипт готов, осталось переместить его на спрайта. Для этого нужно в «Юнити» с помощью мыши буквально перетащить скрипт в правое меню.
Нажимаем сверху на значок пуска и проверяем, что получилось.
Хорошие ресурсы для разработки игр в Unity
Сообщество разработчиков игр — одно из лучших среди всех, и в индустрии есть множество высококвалифицированных профессионалов, которые размещают контент бесплатно или почти бесплатно. В этой области требуются 3D-моделисты, концептуальные художники, геймдизайнеры, программисты и так далее. Я связал несколько отличных общих ресурсов, с которыми я столкнулся, для каждого из этих полей ниже:
Концептуальное искусство
- Школа дизайна Фэн Чжу (более 90 часов уроков по концепт-арту)
- Тайлер Эдлин Арт (Великое арт-сообщество BST с отзывами профессионалов о ежемесячных испытаниях)
- Art Cafe (Интервью и мастер-классы с известными концепт-художниками)
- Трент Канюга (иллюстратор и 2D-художник, который также создает свою собственную игру)
3D моделирование
- CG Cookie (лучшие основы моделирования сетки в Blender, у них есть множество другого отличного контента для блендера)
- Тор Фрик (модельеры и скульпторы твердых поверхностей в Blender)
- Глеб Александров (Краткие мощные уроки по рендерингу в Blender)
Игровой дизайн
- DoubleFine Amnesia Fortnight (разработчики игр, которые проводят двухнедельный хакатон и записывают весь процесс проектирования)
- Инструментарий GameMakers (изучает принципы игрового дизайна)
Программирование
- Handmade Hero (Написание игры и движка с нуля на C)
- Джонатан Блоу (инди-разработчик, транслирующий свою разработку игры)
- Brackeys ( хорошие учебные пособия по Unity)
Настройка триггеров
Для понимания сути триггеров важно усвоить, что такое коллайдер (Collider). Это компонент, который присваивается объекту в пространстве игры, задает форму и делает его твердым, недоступным для прохождения сквозь него
Например, если мы разместим монетку в 2D-пространстве и захотим сделать так, чтобы она упала на платформу, то без использования компонента Collider ничего не получится — монетка пролетит сквозь платформу.
Поэтому обоим объектам необходимо присвоить компонент Box Collider 2D — это тонкая зеленая линия, которая обводит элементы по контуру, и за счет этой рамки они становятся твердыми, то есть один не может пройти сквозь другой.
Так объекты обязательно соприкоснутся и монета встанет на платформу.
Триггер (Trigger) — это пространство на карте, при попадании объекта в которое происходит действие; он тоже обводит объект или область в пространстве по краям. По сути, это тот же коллайдер, только триггер позволяет объектам проходить внутрь этой области. Представьте, что на ту же самую платформу вместе с коллайдером наброшен триггер, и при попадании персонажа внутрь триггерной области активируется телепорт — персонажа перебрасывает в другую точку карты.
Чтобы создать триггер, нужно накинуть тот же самый компонент коллайдера, но поставить галочку Is Trigger.
Триггеры распознают три варианта взаимодействия области на карте и объекта:
- OnTriggerEnter — объект зашел в зону;
- OnTriggerStay — объект находится в зоне;
- OnTriggerExit — объект покинул зону.
Курс от Bubolab
Что вы получите в этом практикуме?
- Изучите основы Unity3D4
- Создадите первые игровые сцены, добавите объекты и оформите гейм дизайн;
- Получите первый опыт программирования на языке C#;
- Научитесь менять свойства объектов, создавать и управлять персонажами, взаимодействовать персонажами с игровыми объектами;
- Изучите основы создания 2D и 3D игр;
- Сможете развивать механику игры, добавлять искусственный интеллект, а также добавлять в игру ботов и управление персонажем от первого лица;
- В завершении курса предоставляется сертификат.
Как проходит обучение?
- Занятия проходят в онлайн-режиме;
- Всего 8 занятий по 2 урока в неделю;
- Длительность занятия 2 часа.
Сколько стоит курс?
Стоимость обучения оставляет 5700 рублей.
«Bubolab»
Если ваш ребёнок увлечен видеоиграми, не ограничивайте его интерес, а лучше взгляните на игровой мир по-новому. Дети с высоким уровнем цифровой грамотности способны к эффективному самообучению за счёт навыков критического мышления и умению ориентироваться в цифровой среде.
Занятия проходят в режиме Онлайн. Ваш ребёнок познакомится с основами программирования, а также созданием 3D- и 2D-игр при помощи среды CryEngine5 и языка C#.
Школа программирования научит вашего ребёнка создавать собственные веб-сайты, мобильные приложения, игры, мультики и придумывать креативные проекты.
Реклама. Информация о рекламодателе по ссылкам в статье.
Что такое Unity.
Я выбрал движок Unity. Почему? Не скажу сейчас точно. Знаю, что он имеет много готовых решений в гемдеве, является весьма популярным и известным. В свое время пытался что-то написать, но тогда мои знания ограничивались версткой какого-то говносайта на вордпресс. Сейчас их стало чуток больше.
Unity – это игровой движок. Разработан компанией Unity Technologies. Он позволяет нам создавать приложения для различных устройств и платформ. В нем уже есть готовая физика, механика мира. Вначале знакомства с Unity программирование будет сведено к нулю, так как будет куча вещей с которыми стоит познакомиться.
Структура моноповедения
Ключевые функции
Все компоненты наследуются от класса MonoBehaviour. Он включает в себя несколько стандартных методов, главное:
- void Start (), который вызывается всякий раз, когда объект, содержащий скрипт, создается в сцене. Это полезно в любое время, когда мы хотим выполнить некоторый код инициализации, например. установить экипировку игрока после того, как он появится в матче.
- void Update (), который вызывается каждый кадр. Это то место, где будет выполняться основная часть кода, включающего пользовательский ввод, обновляющего различные свойства, такие как движение игрока в сцене.
Переменные инспектора
Часто мы хотим сделать компоненты максимально гибкими. Например, все оружие может иметь разный урон, скорострельность, has_sight и т. Д. Хотя все оружие, по сути, одно и то же, мы можем захотеть иметь возможность быстро создавать различные вариации с помощью редактора единства.
Другой пример, когда мы можем захотеть это сделать, — это создание компонента пользовательского интерфейса, который отслеживает движения мыши пользователя и помещает курсор в область просмотра. Здесь мы можем захотеть контролировать чувствительность курсора к движениям (если пользователь использовал джойстик или геймпад, а не компьютерную мышь). Таким образом, имеет смысл сделать эти переменные легко изменяемыми как в режиме редактирования, так и поэкспериментировать с ними во время выполнения.
Переменные в окне инспектора можно изменить в любой момент во время выполнения или в режиме редактирования. Примечание. Изменения, внесенные во время выполнения, не будут постоянными.
Мы можем сделать это легко, просто объявив их как общедоступные переменные в теле компонента.
Обратите внимание, как мы можем сделать переменные с разными уровнями доступа, частными, общедоступными или общедоступными, но не отображаемыми в окне инспектора
Принятие пользовательского ввода
Конечно, мы хотим, чтобы наша игра реагировала на ввод пользователя. Наиболее распространенные способы сделать это — использовать следующие методы в функции Update () компонента (или в любом другом месте, которое вам нравится):
- Input.GetKey (KeyCode.W) Возвращает True W, удерживается клавиша W
- Input.GetKeyDown (KeyCode.W) Возвращает True при первом нажатии клавиши W.
- Input.GetAxis («Вертикальный»), Input.GetAxis («Горизонтальный») Возвращает значение между -1,1 перемещения мыши при вводе.
Объекты Unity Game
Что такое GameObjects
GameObjects — это основной строительный блок всего игрового движка Unity. Название почти выдает это:Все, что вы помещаете в сцену в Unity, должно быть заключено в «игровой объект».
Если у вас есть опыт веб-дизайна, вы можете думать о GameObjects как о элементах <div>! Чрезвычайно скучные контейнеры, но они легко расширяемы для создания сложной функциональности или визуальных эффектов.
Я поднял это прямо из окна редактора Unity, чтобы подчеркнуть это.
Буквально все, от эффектов частиц, камер, игроков, элементов пользовательского интерфейса… (список продолжается) — это GameObject.
Создание иерархии
Как и <div> в веб-разработке, GameObject также является контейнером. Подобно тому, как вы вкладываете <div> для создания разнообразных и желаемых макетов или абстракций, вы можете сделать то же самое с игровыми объектами.Логика вложения игровых объектов во многом такая же, как и при веб-разработке, я приведу несколько примеров …
Беспорядок и эффективность
Позиционирование
Знакомство с интерфейсом и особенности разработки игр на Unity
Для начала нужно скачать и установить Unity 3D – движок для создания игр. Смотрите короткую видеоинструкцию по установке и распаковке программы:
Далее приступим к изучению интерфейса программы.
Первое, что вы видите здесь – это игровая сцена, на которой располагаются объекты игры и их компоненты. Каждый элемент-объект имеет свои обязательные компоненты. Например, элемент Transform, который отвечает за расположение объекта на игровой сцене. Или же Rigidbody, ответственный за симуляцию.
Программирование в Unity 3D построено на создании пользовательских классов, которые как раз выполняют роль компонентов у игровых объектов.
Чтобы было понятнее, перечислим основные игровые классы:
Audio – отвечает за проигрывание музыки и наличие звуковых эффектов при движении;
Settings – отвечает за то, чтобы текущее состояние игры соответствовало действующим настройкам;
Data – отвечает за хранение пользовательских данных;
Serializable Settings – отвечает за сохранение настроек игры;
Player – отвечает за поведение персонажа игрока;
Health – отвечает за здоровье персонажа игрока;
Scrolling – отвечает за постоянное движение фона и объектов фона.
Чтобы познакомиться подробнее с понятиями классов, переменных и функций в Unity, смотрите видеоурок:
Другой особенностью интерфейса «Юнити 3D» является использование нескольких игровых сцен – рабочих областей для запуска игр. Их можно создавать столько, сколько потребуется, а еще перемещаться между ними.
Почему пошел в геймдев и выбрал Unity
В 5–7 классах мы с другом пытались сделать игру. И хотя получилась ерунда, романтика процесса осталась со мной. К тому же я люблю играть, особенно в древние RPG.
После университета я работал в нескольких продуктовых компаниях: год занимался веб-программированием, потом 4 года разрабатывал ПО для call-центров. Но меня всё время преследовала идея попробовать себя в разработке игр. Так что в свободное от работы время я стал думать, какой движок использовать для будущей игры.
Многие разработчики используют Unity и Unreal Engine, но я хотел изучить все варианты. Поэтому я стал разбираться, на чем написаны популярные проекты. Оказалось, что это либо самописные движки, как, например, у Naughty Dog, либо движки, о которых очень мало информации в интернете — чтобы работать с ними, нужно, скорее всего, некоторое время работать в индустрии и знать хотя бы общие принципы построения игровых движков.
Я вернулся к выбору между Unity и Unreal Engine. И так как на тот момент я уже 4 года программировал на .NET, выбор был прост: в Unity есть C#, а в Unreal Engine — нет. Еще один плюс Unity: я погуглил некоторые интересные мне вопросы и почти на все из них нашел попытки ответить. Пусть не всегда профессиональные, но информация была, и было с кем ее обсудить.
У Unity есть аналог StackOverflow — Unity Answers. Там очень просто найти ответы на конкретные вопросы на начальном этапе, поэтому порог входа очень низкий, особенно если человек понимает хотя бы общие принципы программирования.
Основы Unity-разработки: видеотуториалы для начинающих
Если вы только начинаете свой путь в Unity-разработке, то вам повезло, потому что существует множество видеотуториалов, которые помогут вам освоить основы этого мощного игрового движка. Начать обучение Unity-разработке не так сложно, как может показаться, и эти видеотуториалы помогут вам сделать первые шаги.
Почему Unity?
Unity — это один из самых популярных игровых движков, используемых разработчиками для создания игр. Он предлагает множество возможностей и инструментов для создания как 2D, так и 3D игр, и имеет дружелюбный интерфейс, который делает процесс разработки доступным для начинающих.
Unity также предлагает визуальное программирование, что означает, что вы можете создавать игры, не имея опыта в программировании. Однако, знание основ программирования все равно будет полезно в создании более сложных и интересных игр.
Выбор видеотуториалов
Вам может быть сложно выбрать, с каких видеотуториалов начать свой путь в Unity-разработке, так как их существует множество. Но не волнуйтесь, мы подготовили для вас список 9 крутых видеотуториалов, которые помогут вам освоить основы Unity-разработки.
Название видеотуториала | Канал |
---|---|
Введение в Unity: создание первой игры | Brackeys |
Основы Unity: создание игры «Roll-a-Ball» | Unity |
Unity для начинающих: создание простой 2D игры | Code Monkey |
Основы Unity: создание игры «Breakout» | GamesPlusJames |
Unity для начинающих: создание игры «Space Shooter» | Brackeys |
Введение в Unity: создание игры «Tower Defense» | Unity |
Основы Unity: создание игры «Endless Runner» | GamesPlusJames |
Unity для начинающих: создание игры «Pong» | Code Monkey |
Введение в Unity: создание игры «Platformer» | Brackeys |
Выберите видеотуториал, который вам больше всего интересен, и начните свое обучение Unity-разработке.
Особенности обучения Unity-разработке
Unity-разработка имеет свои особенности, о которых стоит знать, прежде чем начать обучение:
- Unity использует язык программирования C#, поэтому для создания более сложных игр вам понадобится знание этого языка.
- Unity имеет свой собственный редактор, который позволяет вам создавать и настраивать игровые объекты.
- Unity предлагает возможность работать в командной среде, что может быть полезно при создании больших проектов.
- Unity также имеет множество дополнительных инструментов и ресурсов, которые помогут вам в разработке игр.
Будьте готовы к тому, что вам потребуется время и усилия, чтобы стать настоящим Unity-разработчиком. Но не теряйте мотивации — эта профессия может быть очень интересной и приносить дополнительный доход, если вы решите заниматься разработкой игр на платформе Unity.
Сколько зарабатывает юнити разработчик
На рынке высокая востребованность unity специалистов, такой человек может работать как в штате компании, так и из дома. Уровень дохода зависит от навыков и степени подготовки. Ниже мы собрали зарплатные данные юнити разработчиков в России.
Источник | Минимальная зарплата | Максимальная зарплата |
workius.ru | 30 000 руб. | 200 000 руб. |
hh.ru | 23 000 руб. | 250 000 руб. |
russia.trud | 63 500 руб. | 100 000 руб. |
Больше информации о навыках и умениях юнити специалиста смотрите в этом видео. Автор канала подробно рассказывает о требованиях к кандидатам на должность разработчика.
Unity Junior Developer — Требования к кандидатам