Unity (игровой движок): различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Возможности: переименование
 
Строка 1: Строка 1:
{{Другие значения|Unity (значения)}}
{{Infobox Software
{{Программа
|name = Unity 3D
| название = Unity
<center>|logo = [[Файл:UnityLogo.gif|250px|center|Unity (Unity 3D)]]
| разработчик = [[Unity Technologies]]
|image = [[Файл:UnityLogo.gif‎|270px|Unity 3D]]
| тип = [[игровой движок]], [[интегрированная среда разработки]], [[фреймворк]]
|screenshot = [[Файл:unity_2.6_bg.jpg|500px|center|thumb]]
| написана на = [[C++]] (Runtime), [[C Sharp|C#]]
|caption =
| первый выпуск = 8 июня {{vgy|2005}} года
|developer = [[Unity Technologies]]
| аппаратная платформа = * [[IBM-PC-совместимый компьютер]]
|latest_release_version = 2.6.1
* [[PlayStation 4]]
|latest_release_date = 5 декабря 2009
* [[PlayStation 5]]
|operating_system = [[Microsoft Windows]], [[Mac OS X]] (creation and deployment), [[Wii]], [[iPhone]] (deployment with special license)
* [[Xbox One]]
|genre = [[Игровой движок]]
* [[Xbox Series X/S]]
|license = [[Proprietary software|Proprietary]]
* [[Nintendo Switch]]
|website = [http://unity3d.com/ unity3d.com]
* [[Apple TV]]
* [[Apple Vision Pro]]
* [[Android]]
* [[iOS]]
| состояние = активное
}}
}}
'''Unity''' ({{trf|s=unity|единство}}, произносится как «ю́нити») — [[Кроссплатформенность|кроссплатформенная]] [[Интегрированная среда разработки|среда разработки]] [[Компьютерная игра|компьютерных игр]]{{sfn|Хокинг|2016|p=16|quote=}}, разработанная американской компанией [[Unity Technologies]]. Unity позволяет создавать приложения, работающие на более чем 25 различных платформах, включающих [[Персональный компьютер|персональные компьютеры]], [[Игровая приставка|игровые консоли]], [[Мобильное устройство|мобильные устройства]], [[Веб-приложение|интернет-приложения]] и другие{{sfn|Хокинг|2016|p=22|quote=}}. Выпуск Unity состоялся в {{vgy|2005}} году и с того времени идёт постоянное развитие.


Основными преимуществами Unity являются наличие [[RAD (программирование)|визуальной среды разработки]], [[Кроссплатформенность|межплатформенной]] поддержки и модульной системы компонентов. К недостаткам относят появление сложностей при работе с многокомпонентными схемами и затруднения при подключении внешних [[Библиотека (программирование)|библиотек]]{{Переход|#Достоинства и недостатки|3}}.
'''Unity''' — это мультиплатформенный инструмент для разработки игр.
Редактор работает под Windows и MacOS.<br />
Игры работают под Windows, [[MacOS]], [[iPhone]], [[Wii]], а также через платформонезависимый веб-плеер Unity (подключается к браузеру как плагин).<br />
Поддержка DirectX и OpenGL.


На Unity написаны тысячи игр, приложений, визуализации математических моделей, которые охватывают множество платформ и жанров. При этом Unity используется как крупными разработчиками, так и [[Инди-игра|независимыми студиями]]{{Переход|#Игры на Unity|3}}.
== История ==


== Технические характеристики ==
* Июнь 2005, '''Unity 1.0.1'''.
{{орисс в разделе|дата=5 января 2018}}
* Август 2005, '''Unity 1.1'''. Добавлена сборка игр под Windows и поддержка плагинов C/C++.
Редактор Unity имеет простой [[Drag-and-Drop|Drag&Drop]] интерфейс, состоящий из различных окон, благодаря чему можно производить отладку игры прямо в [[Редактор уровней|редакторе]]. Движок использует для написания скриптов [[C Sharp|C#]]<ref>{{Cite web |lang=en |url=https://docs.unity3d.com/Manual/unity-architecture.html |title=Unity - Manual: Unity architecture |author=Unity Technologies |website=docs.unity3d.com |archive-url=https://web.archive.org/web/20220513055327/https://docs.unity3d.com/Manual/unity-architecture.html |archive-date=2022-05-13 |access-date=2022-05-13 |deadlink=no}}</ref>. Ранее поддерживались также [[Boo]] (диалект [[Python]], поддержку убрали в 5-й версии) и модификация [[JavaScript]], известная как ''UnityScript'' (поддержка прекращена в версии 2017.1). Расчёты физики производит физический движок [[PhysX]] от [[Nvidia|NVIDIA]] для 3D физики и [[Box2D]] для 2D физики<ref>{{Cite web |lang=en |url=https://docs.unity3d.com/Manual/PhysicsSection.html |title=Unity - Manual: Physics |author=Unity Technologies |website=docs.unity3d.com |archive-url=https://web.archive.org/web/20220513055327/https://docs.unity3d.com/Manual/PhysicsSection.html |archive-date=2022-05-13 |access-date=2022-05-13 |deadlink=no}}</ref>. Графический API — [[DirectX]] (на данный момент [[Direct3D 11|DX 11]], поддерживается [[Direct3D 12|DX 12]]) и [[OpenGL]]<ref>{{Cite web|url=https://docs.unity3d.com/Manual/OpenGLCoreDetails.html|title=Unity - Manual: OpenGL Core|lang=en|first=Unity|last=Technologies|website=docs.unity3d.com|access-date=2024-12-09}}</ref>
* Декабрь 2005, '''Unity 1.2'''. Добавлены эффекты постпроцессинга, регдолл, тени, встроенный скрипт управления персонажем, расширены возможности редактора скриптов.
* Март 2006, '''Unity 1.2.2'''. release in March 2006 added support for building Mac Universal Binary games.
* Июнь 2006, '''Unity 1.5'''. release highlights were web browser plugin for [[Windows]], new character animation system, Universal Binary editor, car physics and [[lightmap]] support. 1.5.1 release in September improved support for old graphics hardware and added [[Unicode]] support.
* Ноябрь 2006, '''Unity 1.6'''. added support for browser-to-game communication, streaming of levels in web games, [[Windows Vista]] support and more audio effects.
* Октябрь 2007, '''Unity 2.0'''. added real time dynamic shadows support, the Unity Asset Server, video playback, a terrain engine, a [[DirectX]] 9.0 renderer (for [[Windows]] games), improved Game GUI creation, and improved Networking with NAT punchthrough.
* Октябрь 2008, '''Unity iPhone 1.0''' Unity приходит на '''[[iPhone]]'''.
* Июль 2008, '''Unity 2.1'''. extended support for streaming assets, procedural characters & animation, scriptable asset processing pipeline and more.
* Октябрь 2008, '''Unity iPhone 1.0''' Начало официальных продаж Unity iPhone.
* Март 2009, '''Unity 2.5.0'''. Добавлена поддержка Windows средой разработки, переработан редактор скриптов.
* Апрель 2009, '''Unity iPhone 1.0.2'''
* Июль 2009, '''Unity 2.5.1'''. Багфиксы.
* Август 2009, '''Unity iPhone 1.5'''
* Апрель 2009, '''Unity''' приходит на рынок игр для '''[[Wii]]'''
* Октябрь 2009, Unity получает инвестии от Sequoia Capital в размере '''5 500 000''' долларов США.
* Октябрь 2009, '''Unity 2.6.0'''. Indie-версия стала бесплатной.
* Ноябрь 2009, '''Unity iPhone 1.5.1'''
* Декабрь 2009, журнал [http://www.gamasutra.com/view/news/26243/Gamasutras_Best_Of_2009_Top_5_Game_Companies.php Gamasutra], назвал Unity одним из 5 лучших игровых движков мира.
* Март 2010, '''Unity iPhone 1.6''' Добавлена поддержка [[.NET]] 2.1, встроенная поддержка сети и прочие множественные улучшения.
* Апрель 2010, '''Unity iPhone 1.7''' Добавлена поддержка '''iPad'''.
Полное описание релизов [http://unity3d.com/unity/whats-new здесь].


Проект в Unity делится на сцены ([[Уровень (игры)|уровни]]) — отдельные файлы, содержащие свои игровые миры со своим набором объектов, сценариев, и настроек. Сцены могут содержать в себе как, собственно, объекты (модели), так и пустые игровые объекты — объекты, которые не имеют модели («пустышки»)<ref>{{Cite web |lang=en |url=https://docs.unity3d.com/Manual/CreatingScenes.html |title=Unity - Manual: Scenes |author=Unity Technologies |website=docs.unity3d.com |archive-url=https://web.archive.org/web/20220418065510/https://docs.unity3d.com/Manual/CreatingScenes.html |archive-date=2022-04-18 |access-date=2022-05-13 |deadlink=no}}</ref>. Объекты, в свою очередь содержат наборы компонентов, с которыми и взаимодействуют скрипты. Также у объектов есть название (в Unity допускается наличие двух и более объектов с одинаковыми названиями в одной сцене), может быть тег (метка) и слой, на котором он должен отображаться. Так, у любого объекта на сцене обязательно присутствует компонент Transform — он хранит в себе координаты местоположения, поворота и размеров объекта по всем трём осям.


Также Unity поддерживает физику твёрдых тел и ткани, а также физику типа [[Ragdoll-физика|Ragdoll]] (тряпичная кукла).


В редакторе имеется система наследования объектов; дочерние объекты будут повторять все изменения позиции, поворота и масштаба родительского объекта.
По стостоянию на 16 февраля 2010 года количество зарегистрированных пользователей Unity 3D превысило 100 тысяч.[http://unity3d.com/company/news/100,000-user-milestone-press.html]


Скрипты в редакторе прикрепляются к объектам в виде отдельных компонентов.
== Технические характеристики ==
* Скриптинг на [[C Sharp|C#]], [[JavaScript]] (модификация) и [[Boo]];
* Игровой движок полностью интегрирован в среду разработки. Это позволяет прямо в редакторе тестировать игру;
* Работа с ресурсами возможна через простой drag&drop. Интерфейс редактора настраиваем;
* Реализована система наследования объектов;
* Поддержка импорта из очень большого количества форматов;
* Встроенный генератор ландшафтов;
* Встроенная поддержка сети;
* Есть решение для коллективной разработки — Asset Server.
* Так же можно использовать свой любимый способ контроля версий. '''Tortoise SVN''' или '''Source Gear''' к примеру.


При импорте текстуры в Unity можно сгенерировать [[Альфа-канал|alpha-канал]], [[MIP-текстурирование|mip-уровни]], [[Normal mapping|normal-map]], [[Карта освещения|light-map]], карту отражений, однако непосредственно на модель текстуру прикрепить нельзя — будет создан материал, которому будет назначен [[шейдер]], и затем материал прикрепится к модели. Редактор Unity поддерживает написание и редактирование шейдеров. Редактор Unity имеет компонент для создания анимации, но также анимацию можно создать предварительно в 3D-редакторе и импортировать вместе с моделью, а затем разбить на файлы.
== Стоимость ==
{| class="wikitable"
|-
! Вид лицензии
! Стоимость
|-
| Unity Indie
| Бесплатно
|-
| Unity Pro
| $1499.00
|-
| ……включая Asset Server client
| $1998
|-
| Asset Server client (необходима лицензия Unity 2.x Pro)
| $499.00
|-
| Wii standalone and WiiWare
| Индивидуально. sales@unity3d.com
|-
| iPhone Basic
| $399
|-
| iPhone Advanced (необходима лицензия Unity Pro)
| $1499
|-
| Source code
| Индивидуально. sales@unity3d.com
|-
|}


Unity 3D поддерживает систему [[Level of Detail|Level Of Detail]] (сокр. LOD), суть которой заключается в том, что на дальнем расстоянии от игрока высокодетализированные модели заменяются на менее детализированные, и наоборот, а также систему Occlusion culling, суть которой в том, что у объектов, не попадающих в поле зрения камеры, не визуализируется геометрия и коллизия, что снижает нагрузку на центральный процессор и позволяет оптимизировать проект. При компиляции проекта создаётся [[Исполняемый файл|исполняемый]] (.exe) файл игры (для [[Windows]]), а в отдельной папке — данные игры (включая все игровые уровни и динамически подключаемые библиотеки).
== Дальнейшее развитие ==
[http://unity3d.com/unity/coming-soon/unity-3 Анонс версии '''Unity''' 3.0]


Движок поддерживает множество популярных форматов. Модели, звуки, текстуры, материалы, скрипты можно запаковывать в формат.unitypackage и передавать другим разработчикам, или выкладывать в свободный доступ. Этот же формат используется во внутреннем магазине Unity Asset Store, в котором разработчики могут бесплатно и за деньги выкладывать в общий доступ различные элементы, нужные при создании игр. Чтобы использовать Unity Asset Store, необходимо иметь аккаунт разработчика Unity.
[http://www.unity3d.ru/index.php/archive/128--unity-30 Анонс версии '''Unity''' 3.0 (перевод)]

UNet (библиотека для реализации мультиплеера в играх на Unity) была удалёна, начиная с версии 2018.4; решение «из коробки» для мультиплеера отсутствует.

Также можно использовать подходящий пользователю способ контроля версий. К примеру, Tortoise SVN, Git или Source Gear.

В Unity входит Unity Asset Server — инструментарий для совместной разработки на базе Unity, являющийся дополнением, добавляющим контроль версий и ряд других серверных решений.


== Достоинства и недостатки ==
== Достоинства и недостатки ==
Как правило, игровой движок предоставляет множество функциональных возможностей, позволяющих их задействовать в различных играх, в которые входят моделирование физических сред, карты нормалей, динамические тени и многое другое. В отличие от многих игровых движков, у Unity имеется два основных преимущества: наличие [[RAD (программирование)|визуальной среды разработки]] и [[Кроссплатформенность|межплатформенная]] поддержка{{sfn|Хокинг|2016|p=21|quote=}}. Первый фактор включает не только инструментарий визуального моделирования, но и [[Интегрированная среда разработки|интегрированную среду]], [[Автоматизация сборки|цепочку сборки]], что направлено на повышение производительности разработчиков, в частности, этапов создания прототипов и тестирования. Под межплатформенной поддержкой предоставляется не только места развёртывания (установка на персональном компьютере, на мобильном устройстве, консоли и т. д.), но и наличие инструментария разработки (интегрированная среда может использоваться под Windows и Mac OS){{sfn|Хокинг|2016|p=22|quote=}}.
* + широкие возможности импорта;
* + кроссплатформенность;
* + гибкая ценовая категория и невысокие цены;
* — в версии 2.6 используется устаревшая версия PhysX, без симуляции жидкостей, мягких тел и тканей


Третьим преимуществом называется модульная система компонентов Unity, с помощью которой происходит конструирование игровых объектов, когда последние представляют собой комбинируемые пакеты функциональных элементов. В отличие от механизмов [[Наследование (программирование)|наследования]], объекты в Unity создаются посредством [[Примесь (программирование)|объединения функциональных блоков]], а не помещения в узлы дерева наследования. Такой подход облегчает создание прототипов, что актуально при разработке игр{{sfn|Хокинг|2016|p=23|quote=}}.
== Unity Asset Server ==
Инструментарий для совместной разработки на базе Unity.


В качестве недостатков приводятся ограничение визуального редактора при работе с многокомпонентными схемами, когда в сложных сценах визуальная работа затрудняется. Вторым недостатком называется отсутствие поддержки Unity ссылок на внешние [[Библиотека (программирование)|библиотеки]], работу с которыми программистам приходится настраивать самостоятельно, и это также затрудняет командную работу. Ещё один недостаток связан с использованием шаблонов экземпляров ({{lang-en|prefabs}}). С одной стороны, эта концепция Unity предлагает гибкий подход визуального редактирования объектов, но с другой стороны, редактирование таких шаблонов является сложным{{sfn|Хокинг|2016|p=23|quote=}}. Также, [[WebGL]]-версия движка, в силу специфики своей архитектуры (трансляция кода из C# в C++ и далее в JavaScript), имеет ряд нерешённых проблем с производительностью, потреблением памяти и работоспособностью на мобильных устройствах<ref>{{Cite web |lang=en |url=https://docs.unity3d.com/Manual/webgl-memory.html |title=Memory Considerations when targeting WebGL |archive-url=https://web.archive.org/web/20180824135030/https://docs.unity3d.com/Manual/webgl-memory.html |archive-date=2018-08-24 |access-date=2018-08-24 |deadlink=no}}</ref><ref>{{Cite web |lang=en |url=https://www.soft8soft.com/verge3d-versus-unity-webgl/ |title=Verge3D versus Unity WebGL - Pipeline and Performance |archive-url=https://web.archive.org/web/20180824135135/https://www.soft8soft.com/verge3d-versus-unity-webgl/ |archive-date=2018-08-24 |access-date=2018-08-24 |deadlink=no}}</ref>.
== Список игр на движке Unity ==
* [http://en.wikipedia.org/wiki/Need_for_Speed:_World '''Need for Speed World''' Онлайн версия знаменитой NFS от] [[Electronic Arts]]
* [http://www.interstellarmarines.com/ '''Interstellarmarines''' Космический Шутер. Первоначально разрабатывался на] [[Unreal Engine]]
* [http://en.wikipedia.org/wiki/Tiger_Woods_PGA_Tour_Online '''Tiger Woods PGA Tour Online''' Онлайн гольф от] [[Electronic Arts]]


== Игры на Unity ==
* [http://www.bbc.co.uk/robinhood/robinhood-show-down.shtml Игра про робингуда, сделанная для BBC.]
{{дополнительно|:Категория:Игры на движке Unity}}
* [http://www.rexona.com.br/xrace/ Гонки на тележках из супермаркета для Rexona.]
[[Файл:Gone Home - TV Room.jpg|270px|справа|мини|''[[Gone Home]]'' — Unity]]
* [http://starwars.lego.com/en-US/funandgames/Clonewars.aspx Star Wars: The Quest for R2-D2 для LEGO.]
* [http://www.efeitoaxe.com.br Billion AXE]
* [http://en.wikipedia.org/wiki/Off-Road_Velociraptor_Safari Off-Road Velociraptor Safari]


На Unity написаны сотни игр, приложений и симуляций{{sfn|Хокинг|2016|p=24—26|quote=}}, Unity используется как крупными разработчиками (например, [[Blizzard Entertainment|Blizzard]]<ref>{{Cite web |lang=en |url=https://venturebeat.com/2014/04/24/even-hearthstone-runs-on-unity-and-thats-why-its-already-on-ipad |title=Even Hearthstone runs on Unity — and that’s why it’s already on iPad |archive-url=https://web.archive.org/web/20171105014352/https://venturebeat.com/2014/04/24/even-hearthstone-runs-on-unity-and-thats-why-its-already-on-ipad/ |archive-date=2017-11-05 |access-date=2017-09-29 |deadlink=no}}</ref>), так и в создании [[Инди-игра|инди-игр]]. Компьютерные игры на Unity охватывают множество платформ и жанров, характерными примерами которых являются{{sfn|Хокинг|2016|p=25-|quote=}}:
=== Fussion Fall ===
* ''[[Guns of Icarus Online]]'', ''[[Gone Home]]'' — [[шутер от первого лица]] и [[приключенческая игра|квест]] от первого лица, созданные [[Инди-игра|независимыми студиями]] — для персональных компьютеров;
Первая полномасштабная ММО-игра на базе Unity.<br />
* ''[[Dead Trigger]]'', ''[[Bad Piggies]]'', ''[[Tyrant Unleashed]]'' — шутер от первого лица, [[Головоломка (жанр компьютерных игр)|головоломка]] и [[коллекционная карточная игра]] — для мобильных устройств;
Игра основанна на сеттинге вселенной Cartoon Network.<br />
* ''[[Assault Android Cactus]]'', ''{{iw|The Golf Club||en|The Golf Club}}'' — [[Аркада (жанр)|аркадный]] [[шутер]] и [[спортивный симулятор]] — для игровых консолей.
Веб-сайт: http://www.fusionfall.com


== История ==
== Основные ссылки ==
Первая версия Unity появилась в 2005 году, когда игровой движок был анонсирован на [[Worldwide Developers Conference]]. Изначально Unity предназначался исключительно для компьютеров Mac, а в августе вышло обновление, позволяющее работать под Windows. В следующих версиях постепенно добавлялись новые платформы и развёртывания: межплатформенный веб-плеер в 2006-м, iPhone в 2008-м, Android в 2010-м, и далее на игровых консолях Xbox и Playstation{{sfn|Хокинг|2016|p=22|quote=}}.
* [http://unity3d.com/unity/ Официальный сайт.]{{ref-en}}
* [http://unity3d.com/unity/download/#windows Ссылка на закачку бесплатной win-indie-версии]
* [http://www.unity3d.ru/ Сайт русскоязычного сообщества, имеется форум, вики и блогохост.]{{ref-ru}}
* [http://www.unifycommunity.com/wiki/index.php?title=Main_Page Unity-Wiki]{{ref-en}}
* [http://blogs.unity3d.ru/ Unity-Wiki]{{ref-ru}}
* [http://www.unitytutorials.com/ Уроки по Unity.]{{ref-en}}


Есть возможность создавать приложения для запуска в браузерах с помощью специального [[плагин|подключаемого модуля]] Unity ''(Unity Web Player)'', а также с помощью реализации технологии WebGL. Ранее была экспериментальная поддержка реализации проектов в рамках модуля [[Adobe Flash|Adobe Flash Player]]<ref>{{Cite web |lang=en |url=https://venturebeat.com/2011/12/21/unity-technologies-developers-will-be-able-to-publish-3d-games-via-adobe-flash/ |title=Unity Technologies developers will be able to publish 3D games via Adobe Flash |author=Dean Takahashi |date=2011-12-21 |publisher=VentureBeat |access-date=2012-03-11 |deadlink=no |archive-date=2012-07-13 |archive-url=https://web.archive.org/web/20120713075207/http://venturebeat.com/2011/12/21/unity-technologies-developers-will-be-able-to-publish-3d-games-via-adobe-flash/ }}</ref>, но позже команда разработчиков Unity приняла сложное решение по отказу<ref>{{Cite web |lang=en |url=http://blogs.unity3d.com/2013/04/23/sunsetting-flash |title=Sunsetting Flash |author=David Helgason |date=2013-04-23 |publisher=The Unity Blog |archive-url=https://web.archive.org/web/20141129151249/http://blogs.unity3d.com/2013/04/23/sunsetting-flash/ |archive-date=2014-11-29 |access-date=2014-12-09 |deadlink=no}}</ref> от этого.
== Защита Unity 3D проектов ==
* [http://unity3d.netobf.com/ «Unity3D Obfuscator» — средство защиты Unity 3D приложений.]{{ref-ru}}


В декабре 2009 года [[Game Developer|Gamasutra]] назвал Unity одним из самых значительных участников на рынке игровых компаний<ref>{{Cite web |lang=en |url=http://www.gamasutra.com/view/news/26243/Gamasutras_Best_Of_2009_Top_5_Game_Companies.php |title=Gamasutra's Best Of 2009: Top 5 Game Companies |author=Christian Nutt |publisher=Gamasutra |access-date=2012-03-11 |deadlink=no |quote=Unity has become a major player in the market as of 2009, and there's more to come |archive-date=2012-05-11 |archive-url=https://web.archive.org/web/20120511152043/http://www.gamasutra.com/view/news/26243/Gamasutras_Best_Of_2009_Top_5_Game_Companies.php }}</ref>.
== Второстепенные ссылки ==
* [http://unity3d.com/support/documentation/Manual/index.html Руководство пользователя.]{{ref-en}}
* [http://docs.unity3d.ru/ Перевод руководства пользователя]{{ref-ru}}
* [http://unity3d.ru/distribution/viewtopic.php?f=11&t=753 Перевод FPS Tutorial 2.5]{{ref-ru}}
* [http://en.wikipedia.org/wiki/Unity_(game_engine) Unity в en.wikipedia]{{ref-en}}


== Лицензии ==
;Демо-сцены:
Бесплатная версия Unity имеет некоторые ограничения, но для неё есть возможность распространять игры при условии, что ежегодный доход с игры не превышает {{число|200000}} [[Доллар США|долларов]]<ref name=":0">{{Cite web |lang=en |url=http://unity3d.com/company/legal/eula |title=Unity Software License Agreement 4.x |archive-url=https://web.archive.org/web/20140307151053/http://unity3d.com/company/legal/eula |archive-date=2014-03-07 |access-date=2014-03-06 |deadlink=no}}</ref>.
* [http://unity3d.com/gallery/live-demos/avert-fate Демо Avert Fate.]
* [http://unity3d.com/gallery/live-demos/tropical-paradise Старое демо Tropical Paradise.]
* [http://unity3d.ru/distribution/viewtopic.php?f=10&t=255 30 миллионов полигонов в Unity.]
* [http://www.unity3d.ru/composition/willage/streamed.html Архитектурная визуализация в Unity.]


{| class="wikitable" class="mw-datatable"
[[Категория:Коммерческие игровые движки]]
|+
|-
! Тип лицензии !!Доход компании в год!! Экран приветствия !! Сборка в облачном хранилище !! Отчёты по производительности !! Премиум поддержка !! Доступ к [[Исходный код|исходному коду]]
|-
| style="background:#eaecf0;" | '''Personal''' || До {{число|200000}} долларов|| Необязательная пользовательская анимация и (начиная с Unity 6 необязательно) «Made With Unity» || Стандартная || {{нет|Нет}} || {{нет|Нет}} || {{нет|Нет}}
|-
| style="background:#eaecf0;" | '''Pro''' || Неограничен || Пользовательская анимация и/или «Made With Unity» || Одновременная || {{да|Да}} || {{да|Да}} || {{нет|Нет}}
|-
| style="background:#eaecf0;" | '''Enterprise''' || Неограничен || Пользовательская анимация и/или «Made With Unity» || Выделенные ресурсы || {{да|Да}} || {{да|Да}} || {{да|Да}}
|-
| style="background:#eaecf0;" | '''Industry''' || Неограничен || Пользовательская анимация и/или «Made With Unity» ||Выделенные ресурсы|| {{да|Да}} || {{да|Да}} || {{да|Да}}
|}
По другим данным, компания взимает с каждого разработчика ежегодную плату, которая варьируется от $400 до $4000 в зависимости от требуемых функций и размера компании-разработчика{{sfn|Болл|2023|с= 130}}.


== Примечания ==
[[en:Unity (game engine)]]
{{примечания}}
[[fr:Unity (moteur de jeux)]]

[[ko:유니티 (게임 엔진)]]
== Литература ==
[[pt:Unity]]
* {{публикация|книга|автор=Хокинг, Джозеф.|заглавие=Unity — в действии. Мультиплатформенная разработка на C#|издание=2|год=2016|isbn=978-1617292323|язык=ru|место=[[Санкт-Петербург|СПб]]|издательство=Питер|страниц=336|ref=Хокинг|ссылка=https://oz.by/books/more10470862.html}}
[[zh:Unity (游戏引擎)]]
* Торн, Алан. Искусство создания сценариев в Unity: [рус.]. — СПб: ДМК, 2016. — 362 с.
* {{Книга |ref=Болл |автор=Мэтью Болл |заглавие=Метавселенная. Как она меняет наш мир |год=2023 |оригинал=Matthew Ball. The Metaverse: And How it Will Revolutionize Everything |место=М. |издательство=Альпина Паблишер |страницы=362 |isbn=978-5-9614-8036-8}}

== Ссылки ==
{{Родственные проекты}}
* {{официальный сайт}}
{{ВС}}
{{Игровые движки}}

[[Категория:Игровые движки по алфавиту]]
[[Категория:Коммерческие игровые движки]]
[[Категория:Программное обеспечение для Android]]
[[Категория:Программное обеспечение для iOS]]
[[Категория:Программное обеспечение для macOS]]
[[Категория:Программное обеспечение для Windows]]
[[Категория:Программное обеспечение для Linux]]
[[Категория:Кроссплатформенное программное обеспечение]]
[[Категория:Приложения, использующие DirectX]]
[[Категория:Приложения, использующие OpenGL]]

Текущая версия от 18:47, 11 декабря 2024

Unity
Логотип программы Unity
Скриншот программы Unity
Тип игровой движок, интегрированная среда разработки, фреймворк
Разработчик Unity Technologies
Написана на C++ (Runtime), C#
Операционные системы Windows, macOS, Linux, Android и iOS
Языки интерфейса английский
Первый выпуск 8 июня 2005 года
Аппаратные платформы
Последняя версия
Состояние активное
Лицензия проприетарная
Сайт unity.com (англ.)
Логотип Викисклада Медиафайлы на Викискладе

Unity (unity в переводе с англ. — «единство», произносится как «ю́нити») — кроссплатформенная среда разработки компьютерных игр[2], разработанная американской компанией Unity Technologies. Unity позволяет создавать приложения, работающие на более чем 25 различных платформах, включающих персональные компьютеры, игровые консоли, мобильные устройства, интернет-приложения и другие[3]. Выпуск Unity состоялся в 2005 году и с того времени идёт постоянное развитие.

Основными преимуществами Unity являются наличие визуальной среды разработки, межплатформенной поддержки и модульной системы компонентов. К недостаткам относят появление сложностей при работе с многокомпонентными схемами и затруднения при подключении внешних библиотек.

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

Технические характеристики

[править | править код]

Редактор Unity имеет простой Drag&Drop интерфейс, состоящий из различных окон, благодаря чему можно производить отладку игры прямо в редакторе. Движок использует для написания скриптов C#[4]. Ранее поддерживались также Boo (диалект Python, поддержку убрали в 5-й версии) и модификация JavaScript, известная как UnityScript (поддержка прекращена в версии 2017.1). Расчёты физики производит физический движок PhysX от NVIDIA для 3D физики и Box2D для 2D физики[5]. Графический API — DirectX (на данный момент DX 11, поддерживается DX 12) и OpenGL[6]

Проект в Unity делится на сцены (уровни) — отдельные файлы, содержащие свои игровые миры со своим набором объектов, сценариев, и настроек. Сцены могут содержать в себе как, собственно, объекты (модели), так и пустые игровые объекты — объекты, которые не имеют модели («пустышки»)[7]. Объекты, в свою очередь содержат наборы компонентов, с которыми и взаимодействуют скрипты. Также у объектов есть название (в Unity допускается наличие двух и более объектов с одинаковыми названиями в одной сцене), может быть тег (метка) и слой, на котором он должен отображаться. Так, у любого объекта на сцене обязательно присутствует компонент Transform — он хранит в себе координаты местоположения, поворота и размеров объекта по всем трём осям.

Также Unity поддерживает физику твёрдых тел и ткани, а также физику типа Ragdoll (тряпичная кукла).

В редакторе имеется система наследования объектов; дочерние объекты будут повторять все изменения позиции, поворота и масштаба родительского объекта.

Скрипты в редакторе прикрепляются к объектам в виде отдельных компонентов.

При импорте текстуры в Unity можно сгенерировать alpha-канал, mip-уровни, normal-map, light-map, карту отражений, однако непосредственно на модель текстуру прикрепить нельзя — будет создан материал, которому будет назначен шейдер, и затем материал прикрепится к модели. Редактор Unity поддерживает написание и редактирование шейдеров. Редактор Unity имеет компонент для создания анимации, но также анимацию можно создать предварительно в 3D-редакторе и импортировать вместе с моделью, а затем разбить на файлы.

Unity 3D поддерживает систему Level Of Detail (сокр. LOD), суть которой заключается в том, что на дальнем расстоянии от игрока высокодетализированные модели заменяются на менее детализированные, и наоборот, а также систему Occlusion culling, суть которой в том, что у объектов, не попадающих в поле зрения камеры, не визуализируется геометрия и коллизия, что снижает нагрузку на центральный процессор и позволяет оптимизировать проект. При компиляции проекта создаётся исполняемый (.exe) файл игры (для Windows), а в отдельной папке — данные игры (включая все игровые уровни и динамически подключаемые библиотеки).

Движок поддерживает множество популярных форматов. Модели, звуки, текстуры, материалы, скрипты можно запаковывать в формат.unitypackage и передавать другим разработчикам, или выкладывать в свободный доступ. Этот же формат используется во внутреннем магазине Unity Asset Store, в котором разработчики могут бесплатно и за деньги выкладывать в общий доступ различные элементы, нужные при создании игр. Чтобы использовать Unity Asset Store, необходимо иметь аккаунт разработчика Unity.

UNet (библиотека для реализации мультиплеера в играх на Unity) была удалёна, начиная с версии 2018.4; решение «из коробки» для мультиплеера отсутствует.

Также можно использовать подходящий пользователю способ контроля версий. К примеру, Tortoise SVN, Git или Source Gear.

В Unity входит Unity Asset Server — инструментарий для совместной разработки на базе Unity, являющийся дополнением, добавляющим контроль версий и ряд других серверных решений.

Достоинства и недостатки

[править | править код]

Как правило, игровой движок предоставляет множество функциональных возможностей, позволяющих их задействовать в различных играх, в которые входят моделирование физических сред, карты нормалей, динамические тени и многое другое. В отличие от многих игровых движков, у Unity имеется два основных преимущества: наличие визуальной среды разработки и межплатформенная поддержка[8]. Первый фактор включает не только инструментарий визуального моделирования, но и интегрированную среду, цепочку сборки, что направлено на повышение производительности разработчиков, в частности, этапов создания прототипов и тестирования. Под межплатформенной поддержкой предоставляется не только места развёртывания (установка на персональном компьютере, на мобильном устройстве, консоли и т. д.), но и наличие инструментария разработки (интегрированная среда может использоваться под Windows и Mac OS)[3].

Третьим преимуществом называется модульная система компонентов Unity, с помощью которой происходит конструирование игровых объектов, когда последние представляют собой комбинируемые пакеты функциональных элементов. В отличие от механизмов наследования, объекты в Unity создаются посредством объединения функциональных блоков, а не помещения в узлы дерева наследования. Такой подход облегчает создание прототипов, что актуально при разработке игр[9].

В качестве недостатков приводятся ограничение визуального редактора при работе с многокомпонентными схемами, когда в сложных сценах визуальная работа затрудняется. Вторым недостатком называется отсутствие поддержки Unity ссылок на внешние библиотеки, работу с которыми программистам приходится настраивать самостоятельно, и это также затрудняет командную работу. Ещё один недостаток связан с использованием шаблонов экземпляров (англ. prefabs). С одной стороны, эта концепция Unity предлагает гибкий подход визуального редактирования объектов, но с другой стороны, редактирование таких шаблонов является сложным[9]. Также, WebGL-версия движка, в силу специфики своей архитектуры (трансляция кода из C# в C++ и далее в JavaScript), имеет ряд нерешённых проблем с производительностью, потреблением памяти и работоспособностью на мобильных устройствах[10][11].

Игры на Unity

[править | править код]
Gone Home — Unity

На Unity написаны сотни игр, приложений и симуляций[12], Unity используется как крупными разработчиками (например, Blizzard[13]), так и в создании инди-игр. Компьютерные игры на Unity охватывают множество платформ и жанров, характерными примерами которых являются[14]:

Первая версия Unity появилась в 2005 году, когда игровой движок был анонсирован на Worldwide Developers Conference. Изначально Unity предназначался исключительно для компьютеров Mac, а в августе вышло обновление, позволяющее работать под Windows. В следующих версиях постепенно добавлялись новые платформы и развёртывания: межплатформенный веб-плеер в 2006-м, iPhone в 2008-м, Android в 2010-м, и далее на игровых консолях Xbox и Playstation[3].

Есть возможность создавать приложения для запуска в браузерах с помощью специального подключаемого модуля Unity (Unity Web Player), а также с помощью реализации технологии WebGL. Ранее была экспериментальная поддержка реализации проектов в рамках модуля Adobe Flash Player[15], но позже команда разработчиков Unity приняла сложное решение по отказу[16] от этого.

В декабре 2009 года Gamasutra назвал Unity одним из самых значительных участников на рынке игровых компаний[17].

Бесплатная версия Unity имеет некоторые ограничения, но для неё есть возможность распространять игры при условии, что ежегодный доход с игры не превышает 200 000 долларов[18].

Тип лицензии Доход компании в год Экран приветствия Сборка в облачном хранилище Отчёты по производительности Премиум поддержка Доступ к исходному коду
Personal До 200 000 долларов Необязательная пользовательская анимация и (начиная с Unity 6 необязательно) «Made With Unity» Стандартная Нет Нет Нет
Pro Неограничен Пользовательская анимация и/или «Made With Unity» Одновременная Да Да Нет
Enterprise Неограничен Пользовательская анимация и/или «Made With Unity» Выделенные ресурсы Да Да Да
Industry Неограничен Пользовательская анимация и/или «Made With Unity» Выделенные ресурсы Да Да Да

По другим данным, компания взимает с каждого разработчика ежегодную плату, которая варьируется от $400 до $4000 в зависимости от требуемых функций и размера компании-разработчика[19].

Примечания

[править | править код]
  1. Unity download archive (англ.)
  2. Хокинг, 2016, p. 16.
  3. 1 2 3 Хокинг, 2016, p. 22.
  4. Unity Technologies. Unity - Manual: Unity architecture (англ.). docs.unity3d.com. Дата обращения: 13 мая 2022. Архивировано 13 мая 2022 года.
  5. Unity Technologies. Unity - Manual: Physics (англ.). docs.unity3d.com. Дата обращения: 13 мая 2022. Архивировано 13 мая 2022 года.
  6. Technologies, Unity Unity - Manual: OpenGL Core (англ.). docs.unity3d.com. Дата обращения: 9 декабря 2024.
  7. Unity Technologies. Unity - Manual: Scenes (англ.). docs.unity3d.com. Дата обращения: 13 мая 2022. Архивировано 18 апреля 2022 года.
  8. Хокинг, 2016, p. 21.
  9. 1 2 Хокинг, 2016, p. 23.
  10. Memory Considerations when targeting WebGL (англ.). Дата обращения: 24 августа 2018. Архивировано 24 августа 2018 года.
  11. Verge3D versus Unity WebGL - Pipeline and Performance (англ.). Дата обращения: 24 августа 2018. Архивировано 24 августа 2018 года.
  12. Хокинг, 2016, p. 24—26.
  13. Even Hearthstone runs on Unity — and that’s why it’s already on iPad (англ.). Дата обращения: 29 сентября 2017. Архивировано 5 ноября 2017 года.
  14. Хокинг, 2016, p. 25-.
  15. Dean Takahashi. Unity Technologies developers will be able to publish 3D games via Adobe Flash (англ.). VentureBeat (21 декабря 2011). Дата обращения: 11 марта 2012. Архивировано 13 июля 2012 года.
  16. David Helgason. Sunsetting Flash (англ.). The Unity Blog (23 апреля 2013). Дата обращения: 9 декабря 2014. Архивировано 29 ноября 2014 года.
  17. Christian Nutt. Gamasutra's Best Of 2009: Top 5 Game Companies (англ.). Gamasutra. — «Unity has become a major player in the market as of 2009, and there's more to come». Дата обращения: 11 марта 2012. Архивировано 11 мая 2012 года.
  18. Unity Software License Agreement 4.x (англ.). Дата обращения: 6 марта 2014. Архивировано 7 марта 2014 года.
  19. Болл, 2023, с. 130.

Литература

[править | править код]
  • Хокинг, Джозеф. Unity — в действии. Мультиплатформенная разработка на C# : [рус.]. — 2. — СПб : Питер, 2016. — 336 с. — ISBN 978-1617292323.
  • Торн, Алан. Искусство создания сценариев в Unity: [рус.]. — СПб: ДМК, 2016. — 362 с.
  • Мэтью Болл. Метавселенная. Как она меняет наш мир = Matthew Ball. The Metaverse: And How it Will Revolutionize Everything. — М.: Альпина Паблишер, 2023. — С. 362. — ISBN 978-5-9614-8036-8.
  • unity.com (англ.) — официальный сайт Unity