Unity – это игровой движок для создания мобильных и компьютерных видеоигр. Unity позволяет адаптировать код под исполнение на 28 платформах. Благодаря визуальному редактору позволит реализовать творческие способности дизайнеров, художников, программистов, начинающих геймдевелоперов.
Кроме игровой сферы применяется в автомобильной, машиностроительной, авиакосмической индустрии, при производстве мультфильмов, кино, в строительной отрасли, промышленности, архитектуре.
Что такое Unity
Unity – движок, среда, платформа для разработки игр, объединяющая в себе ряд инструментов для облегчения работы.
Состоит из визуального редактора, редактора кода, инструмента для написания скриптов – логики поведения объектов. Она позволяет вносить изменения, не покидая сцену, и в реальном времени оценивать их результат.
Содержит инструменты для создания точных трёхмерных копий реальных объектов и пространств (комнат, зданий, открытой местности).
Изначально движок назывался Unity3D, вследствие переименован в Unity.
Возможности Unity
Платформа предоставляет готовую физическую модель для взаимодействия между объектами виртуальной сцены, чем избавляет разработчика от проработки поведения каждого из элементов.
В Unity встроен физический движок. Он включает законы, правила взаимодействия элементов сцены между собой, с окружающей средой.
В библиотеке полно пресетов с разными настройками физики мира, которые можно загружать в проект и изменять.
Имитация физических явлений и объектов на основе частиц (атмосферные осадки, огонь, отражения) проводится с задействованием разработки от Nvidia PhysX.
В состав физической стороны движка входит физика твёрдых и мягких тел – тканей, волос, шерсти и жидкостей. Система наследования свойств заставит дочерние предметы копировать свойства и поведение родительских. Скрипты к каждому из них прикрепляются отдельно.
Благодаря использованию С # начинающий программист сможет писать всевозможные скрипты – крохотные программы, куски кода, задающие поведенческие реакции объектов на события, явления – создавать квесты с разветвленной структурой.
Настраиваемый под разработчика интерфейс с поддержкой Drag&Drop упрощает работу над сценами, их отладку и редактирование без переключения между окнами.
Визуальный редактор работает с шейдерами, картами отражений, однако последние не применятся непосредственно к модели, а прикрепляются к ней только после назначения шейдера.
Последние можно как создавать с нуля, так и редактировать имеющиеся. Средство для создания трёхмерной анимации поддерживает её импорт с Blender, 3DsMax и прочих 3D-редакторов.
Для оптимизации нагрузки на оборудование разработчик предусмотрел опцию Level Of Detail.
Она снижает детализацию и качество прорисовки отдалённых объектов, а при приближении – прорисовывает их полностью. Алгоритмы Occlusion Culling не визуализируют объекты, расположенные вне поля зрения камеры, удаляют из памяти остающееся за спиной игрока.
Скомпилированная игра для Windows запускается через исполнительный файл, все ресурсы (уровни, мультимедиа) хранятся в отдельных файлах, динамически подключаемых библиотеках.
В Unity Asset Server есть инструменты для реализации мультиплеера. Система контроля версий с графическим представлением позволит откатить состояние проекта, отслеживать изменения между версиями. Unity работает с освещением: поддерживает трассировку лучей – создаёт реалистичную картинку путём отслеживания взаимодействия света с поверхностями. Работает со всеми современными графическими технологиями: DirectX 12, VRWorks, Vulkan, LiquidVR.
✅Читайте здесь что такое Frontend разработка
Особенности Unity
Платформа для образовательных целей и студентов распространяется бесплатно, но с рядом ограничений и условий. Новички ещё и начальный капитал на реализацию проекта могут получить. С каждым релизом в Юнити повышается эффективность программирования с учётом обновлений синтаксиса C#. Внедрение новинок в Unity способствует разработке функциональных интерфейсов с минимальным объемом кода для любой из поддерживаемых платформ.
Проекты в Unity представлены уровнями, которые хранятся в отдельных файлах на диске вместе с набором принадлежащих им сценариев, объектов, компонентов, параметров двух последних. Несколько компонентов сцены могут носить одинаковые названия, отмечаться тегами, распределяться по слоям.
Платформа понимает десятки форматов моделей, аудиоматериалов, текстур, нормалей, скриптов. Последние можно экспортировать для применения в иных проектах либо сжимать в один файл. Движок визуализации сцен и объектов в реальном времени на лету отображает вносимые изменения.
Библиотека готовых к использованию цифровых объектов позволяет импортировать и экспортировать ассеты: фрагменты сцен, скрипты поведения персонажей и объектов, перемещая их между проектами без программирования. При условии, что не возникнут проблемы с их совместимостью. Так делаются заготовки для схожих игр.
Asset Store предлагает часть ассетов бесплатно. Разработчикам предоставляет возможность загружать в библиотеку Unity собственные разработки через редактор, продавать их.
Преимущества и недостатки
Движок обладает рядом положительных и отрицательных сторон.
Плюсы платформы
- Функциональный графический редактор – предусматривает создание локаций, моделей, расстановку объектов сцены с функцией тестирования результатов в реальном времени.
- Кроссплатформенная среда разработки позволяет адаптировать проект для любой платформы путём внесения минимальных изменений. Минимизирует стоимость проекта.
- Интегрированная среда разработки – программный комплекс для работы с движком, имея базовые знаниями программирования.
- Поддержка плагинов – возможность установки компонентов, расширяющих возможности, повышающих удобство, скорость работы со средой.
- Модульность – позволяет конструировать пакеты компонентов в одной игровой сцене.
- Продвинутая методика создания объектов: вместо наследования путём размещения в древе они объединяются в функциональные блоки, что упрощает этап прототипирования.
- Использование высокоуровневого языка C# с рядом готовых решений упрощает подключение программистов к разработке.
- Качество поддержки – Unity сайт содержит описание всех функций движка, примеры их применения с пояснениями. Служба поддержки оперативно отвечает на вопросы.
- Бесплатная эксплуатация для применения в личных и образовательных целях.
- Сообщество – продвинутые пользователи всегда подскажут, помогут советом. На тематических форумах и блогах полно информации по Unity.
Минусы платформы
- Проблемы при разработке многокомпонентных проектов из-за ограничений визуального редактора.
- Сложности в подключении внешних плагинов – из-за отсутствия ссылок на них в программе модули придётся искать, устанавливать и настраивать самому.
- Проблематичное внесение изменений в шаблоны экземпляров.
- WebGL-редакция отличается рядом проблем с быстродействием, работоспособностью и стабильностью.
- Стоимость – Pro-версия стоит $1800, а Enterprise — $4000 – неподъёмная сумма для фрилансера, их группы, небольшой студии разработчиков.
- Быстродействие, по сравнению с другими движками, при разрастании проекта.
- Большой размер скомпилированного файла особенно для мобильных платформ.
Игры на Unity
На движке выпущены сотни мобильных, консольных, десктопных развлечений, игр с дополненной реальностью. Он применяется в архитектуре, строительстве, производстве (многими автогигантами, такими как Audi, BMW, Lexus, Volvo), при создании мультипликационных фильмов.
С компьютерных игр отметим:
- Cuphead – платформер в стиле экшена с мультяшной графикой.
- Pillars Of Eternity – кроссплатформенная «ролевка».
- My Friend Pedro – платформер с возможностью управления временем.
- Rust – симулятор выживания.
- Subnautica – симулятор выживания в море.
- Valorant – многопользовательский шутер.
- Death Carnival – динамичный шутер.
- Escape from Tarkov – отечественная многопользовательская стрелялка с элементами RPG.
Мобильные развлечения на Unity: Age of Magic, Chaos Lords, Jurassic Monster World, Royal Blood, Guns of Boom, Pokemon Unite и Go.
Мультфильмы, созданные с помощью Unity: Dead Pixels, Bonfire, Jigsaw.
Кому стоит использовать этот движок
Платформа рассчитана на начинающих геймдевелоперов и небольшие компании, которых функциональность простых продуктов вроде RPG Maker, Kodu Game Lab не устраивает, а ресурсов приобрести продвинутый движок нет. Unity применяется для создания видеороликов, реализации кроссплатформенных 2D-проектов (поддержка 2D появилась недавно) и масштабных проектов вроде The Elder Scrolls: Legends, Pillars Of Eternity. Также применяется для написания симуляций.
Специалисты не рекомендуют выбирать платформу для AAA-игр из-за невысокой оптимизации C# – множество объектов и сложные сцены заметно снижают производительность. Для разработки простейшего кликера или платформера функциональность Unity излишня, лучше выбрать инструмент попроще, например, LibGDX.
Как работать в Unity
После выбора Юнити пора приступать к изучению его возможностей.
Первые шаги
Для реализации проекта на Unity определитесь с версией движка: Plus – 399 $ в год, Pro – 1800 $ за 12 месяцев, 4000 $ в год. Все отличаются по функциональности. Есть бесплатные версии для студентов аккредитованных учреждений и персональной эксплуатации – то, что нам нужно. Загрузите пакет с официального сайта и установите. После инсталляции в составе можно обнаружить Unity Hub, что же это за продукт и зачем нужен? Автономная программа, упрощающая управление проектами: поиск, выгрузку в облако, скачивание на компьютер, удаление, загрузку в редактор.
Как создать свой проект
Для работы над первой игрой необходимо завести аккаунт Unity Hub.
- В запущенном приложении кликните «Create account», введите логин с паролем и авторизуйтесь в системе через браузер.
- Во вкладке «Projects» нажмите «New…», введите его название, выберите шаблон (у нас – 3D) и жмите «Create».
После загрузки проекта увидите список своих разработок.
Здесь они добавляются, удаляются, копируются и переносятся в облако, на локальный диск.
Загрузится редактор.
Для добавления содержимого кликните правой клавишей в окне «Hierarchy», выберите тип и сам объект. Здесь же изменяется порядок размещения элементов среды.
Выделите предмет кликом (у нас это куб), и в правой панели «Inspector» отобразятся его свойства.
Благодаря ему путём изменения свойств из простейших геометрических фигур делаются игровые объекты.
На платформе применяется компонентно-ориентированный подход. Всё в сцене представлено игровыми объектами GameObject, состоящими из ряда компонентов:
- графический – модель, например, мячик;
- управление – привязывается к кнопкам, поведению мыши, скриптам, событиям;
- свет – для источников освещения.
Для управления видом сцены (перемещением камеры, масштабированием) пользуйтесь соответствующими кнопками на панели инструментов либо мышкой.
Кликните по одной из осей и перетаскивайте её для изменения размера объекта в этом направлении.
Дальше придется проявлять творчество, обращаясь к различным руководствам и видеоматериалам по Unity.
Создать 2D/3D-сцену с десятков объектов, придать им определённые свойства, связать задать условия взаимодействия можно в бесплатной версии Unity. Это популярнейшая платформа для разработки игр на компьютеры и мобильные устройства.
Для написания сложных скриптов придётся постичь азы программирования на C#. Масса уроков и отзывчивое сообщество всегда подскажут решение проблемы. Видеоматериалы на русском языке упрощают обучение начинающим и опытным девелоперам. Компании, специализирующиеся на разработке игр, реализуют на платформе масштабные проекты вроде Deus Ex GO, Wasteland 3.