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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
→‎Лицензии: уточнение
м →‎Возможности: оформление
 
(не показаны 44 промежуточные версии 27 участников)
Строка 1: Строка 1:
{{Значения|Unity (значения)}}
{{Другие значения|Unity (значения)}}
{{Программа
{{Программа
| название = Unity
| название = Unity
| разработчик = [[Unity Technologies]]
| разработчик = [[Unity Technologies]]
| тип = [[игровой движок]], [[интегрированная среда разработки]], [[Конструктор игр|конструктор]], [[фреймворк]]
| тип = [[игровой движок]], [[интегрированная среда разработки]], [[фреймворк]]
| написана на = [[C++]] (Runtime), [[C Sharp|C#]]
| написана на = [[C++]] (Runtime), [[C Sharp|C#]]
| первый выпуск = 8 июня {{vgy|2005}} года
| первый выпуск = 8 июня {{vgy|2005}} года
| аппаратная платформа = [[IBM-PC-совместимый компьютер|ПК]]<br>[[PlayStation 4]]<br>[[PlayStation 5]]<br>[[Xbox One]]<br>[[Xbox Series X]]<br>[[Apple TV]]
| аппаратная платформа = [[IBM-PC-совместимый компьютер|ПК]]<br>[[PlayStation 4]]<br>[[PlayStation 5]]<br>[[Xbox One]]<br>[[Xbox Series X/S]]<br>[[Nintendo Switch]]<br>[[Apple TV]]<br>[[Apple Vision Pro]], в Q1 2024
| состояние = активное
| состояние = активное
}}
}}
'''Unity''' ({{trf|s=unity|единство}}, произносится как «ю́нити») — [[Кроссплатформенность|кроссплатформенная]] [[Интегрированная среда разработки|среда разработки]] [[Компьютерная игра|компьютерных игр]]{{sfn|Хокинг|2016|p=16|quote=}}, разработанная американской компанией [[Unity Technologies]]. Unity позволяет создавать приложения, работающие на более чем 25 различных платформах, включающих [[Персональный компьютер|персональные компьютеры]], [[Игровая приставка|игровые консоли]], [[Мобильное устройство|мобильные устройства]], [[Веб-приложение|интернет-приложения]] и другие{{sfn|Хокинг|2016|p=22|quote=}}. Выпуск Unity состоялся в {{vgy|2005}} году и с того времени идёт постоянное развитие.
'''Unity''' ({{trf|s=unity|единство}}, произносится как «ю́нити») — [[Кроссплатформенность|кроссплатформенная]] [[Интегрированная среда разработки|среда разработки]] [[Компьютерная игра|компьютерных игр]]{{sfn|Хокинг|2016|p=16|quote=}}, разработанная американской компанией [[Unity Technologies]]. Unity позволяет создавать приложения, работающие на более чем 25 различных платформах, включающих [[Персональный компьютер|персональные компьютеры]], [[Игровая приставка|игровые консоли]], [[Мобильное устройство|мобильные устройства]], [[Веб-приложение|интернет-приложения]] и другие{{sfn|Хокинг|2016|p=22|quote=}}. Выпуск Unity состоялся в {{vgy|2005}} году и с того времени идёт постоянное развитие.


Основными преимуществами Unity являются наличие [[RAD (программирование)|визуальной среды разработки]], [[Кроссплатформенность|межплатформенной]] поддержки и модульной системы компонентов. К недостаткам
Основными преимуществами Unity являются наличие [[RAD (программирование)|визуальной среды разработки]], [[Кроссплатформенность|межплатформенной]] поддержки и модульной системы компонентов. К недостаткам относят появление сложностей при работе с многокомпонентными схемами и затруднения при подключении внешних [[Библиотека (программирование)|библиотек]]{{Переход|#Достоинства и недостатки|3}}.
относят появление сложностей при работе с многокомпонентными схемами и затруднения при подключении внешних [[Библиотека (программирование)|библиотек]]{{Переход|#Достоинства и недостатки|3}}.


На Unity написаны тысячи игр, приложений, визуализации математических моделей, которые охватывают множество платформ и жанров. При этом Unity используется как крупными разработчиками, так и [[Инди-игра|независимыми студиями]]{{Переход|#Игры на Unity|3}}.
На Unity написаны тысячи игр, приложений, визуализации математических моделей, которые охватывают множество платформ и жанров. При этом Unity используется как крупными разработчиками, так и [[Инди-игра|независимыми студиями]]{{Переход|#Игры на Unity|3}}.
Строка 18: Строка 17:
== Возможности ==
== Возможности ==
{{орисс в разделе|дата=5 января 2018}}
{{орисс в разделе|дата=5 января 2018}}
Редактор Unity имеет простой [[Drag-and-Drop|Drag&Drop]] интерфейс, а также установкой плагинов KALI который легко настраивать, состоящий из различных окон, благодаря чему можно производить отладку игры прямо в [[Редактор уровней|редакторе]]. Движок использует для написания скриптов [[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|access-date=2022-05-13|archive-date=2022-05-13|archive-url=https://web.archive.org/web/20220513055327/https://docs.unity3d.com/Manual/unity-architecture.html|deadlink=no}}</ref>. Ранее поддерживались также [[Boo]] (диалект [[Python]], поддержку убрали в 5-й версии) и модификация [[JavaScript]], известная как ''UnityScript'' (поддержка прекращена в версии 2017.1). Расчёты физики производит физический движок [[PhysX]] от [[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|access-date=2022-05-13|archive-date=2022-05-13|archive-url=https://web.archive.org/web/20220513055327/https://docs.unity3d.com/Manual/PhysicsSection.html|deadlink=no}}</ref>. Графический API — [[DirectX]] (на данный момент [[DX11|DX 11]], поддерживается [[Direct3D 12|DX 12]])
Редактор 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]])


Проект в 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|access-date=2022-05-13|archive-date=2022-04-18|archive-url=https://web.archive.org/web/20220418065510/https://docs.unity3d.com/Manual/CreatingScenes.html|deadlink=no}}</ref>. Объекты, в свою очередь содержат наборы компонентов, с которыми и взаимодействуют скрипты. Также у объектов есть название (в Unity допускается наличие двух и более объектов с одинаковыми названиями в одной сцене), может быть тег (метка) и слой, на котором он должен отображаться. Так, у любого объекта на сцене обязательно присутствует компонент Transform — он хранит в себе координаты местоположения, поворота и размеров объекта по всем трём осям.
Проект в 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]] (тряпичная кукла).
Также Unity поддерживает физику твёрдых тел и ткани, а также физику типа [[Ragdoll-физика|Ragdoll]] (тряпичная кукла).
Строка 28: Строка 27:
Скрипты в редакторе прикрепляются к объектам в виде отдельных компонентов.
Скрипты в редакторе прикрепляются к объектам в виде отдельных компонентов.


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


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


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


UNet (библиотека для реализации мультиплеера в играх на Unity) была удалёна, начиная с версии 2018.4; решение «из коробки» для мультиплеера отсутствует. Также можно использовать подходящий пользователю способ контроля версий. К примеру, '''Tortoise SVN, Git''' или '''Source Gear'''.
UNet (библиотека для реализации мультиплеера в играх на Unity) была удалёна, начиная с версии 2018.4; решение «из коробки» для мультиплеера отсутствует.
Также можно использовать подходящий пользователю способ контроля версий. К примеру, Tortoise SVN, Git или Source Gear.


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


В качестве недостатков приводятся ограничение визуального редактора при работе с многокомпонентными схемами, когда в сложных сценах визуальная работа затрудняется. Вторым недостатком называется отсутствие поддержки Unity ссылок на внешние [[Библиотека (программирование)|библиотеки]], работу с которыми программистам приходится настраивать самостоятельно, и это также затрудняет командную работу. Ещё один недостаток связан с использованием шаблонов экземпляров ({{lang-en|prefabs}}). С одной стороны, эта концепция Unity предлагает гибкий подход визуального редактирования объектов, но с другой стороны, редактирование таких шаблонов является сложным{{sfn|Хокинг|2016|p=23|quote=}}. Также, [[WebGL]]-версия движка, в силу специфики своей архитектуры (трансляция кода из C# в C++ и далее в JavaScript), имеет ряд нерешённых проблем с производительностью, потреблением памяти и работоспособностью на мобильных устройствах<ref>{{Cite web|url = https://docs.unity3d.com/Manual/webgl-memory.html|title = Memory Considerations when targeting WebGL|author = |date = |publisher = |access-date = 2018-08-24|archive-date = 2018-08-24|archive-url = https://web.archive.org/web/20180824135030/https://docs.unity3d.com/Manual/webgl-memory.html|deadlink = no}}</ref><ref>{{Cite web|url = https://www.soft8soft.com/verge3d-versus-unity-webgl/|title = Verge3D versus Unity WebGL - Pipeline and Performance|author = |date = |publisher = |access-date = 2018-08-24|archive-date = 2018-08-24|archive-url = https://web.archive.org/web/20180824135135/https://www.soft8soft.com/verge3d-versus-unity-webgl/|deadlink = no}}</ref>.
В качестве недостатков приводятся ограничение визуального редактора при работе с многокомпонентными схемами, когда в сложных сценах визуальная работа затрудняется. Вторым недостатком называется отсутствие поддержки 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 ==
== Игры на Unity ==
{{see|:Категория:Игры на движке Unity}}
{{дополнительно|:Категория:Игры на движке Unity}}
[[Файл:Gone Home - TV Room.jpg|270px|справа|мини|''[[Gone Home]]'' — Unity]]
[[Файл:Gone Home - TV Room.jpg|270px|справа|мини|''[[Gone Home]]'' — Unity]]


На Unity написаны сотни игр, приложений и симуляций{{sfn|Хокинг|2016|p=24—26|quote=}}, Unity используется как крупными разработчиками (например, [[Blizzard]]<ref>{{Cite web|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|author = |date = |publisher = |access-date = 2017-09-29|archive-date = 2017-11-05|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/|deadlink = no}}</ref>), так и в создании [[Инди-игра|инди-игр]]. Компьютерные игры на Unity охватывают множество платформ и жанров, характерными примерами которых являются{{sfn|Хокинг|2016|p=25-|quote=}}:
На 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=}}:
* ''[[Guns of Icarus Online]]'', ''[[Gone Home]]'' — [[шутер от первого лица]] и [[квест]] от первого лица, созданные [[Инди-игра|независимыми студиями]] — для персональных компьютеров;
* ''[[Guns of Icarus Online]]'', ''[[Gone Home]]'' — [[шутер от первого лица]] и [[приключенческая игра|квест]] от первого лица, созданные [[Инди-игра|независимыми студиями]] — для персональных компьютеров;
* ''[[Dead Trigger]]'', ''[[Bad Piggies]]'', ''[[Tyrant Unleashed]]'' — шутер от первого лица, [[Головоломка (жанр компьютерных игр)|головоломка]] и [[коллекционная карточная игра]] — для мобильных устройств;
* ''[[Dead Trigger]]'', ''[[Bad Piggies]]'', ''[[Tyrant Unleashed]]'' — шутер от первого лица, [[Головоломка (жанр компьютерных игр)|головоломка]] и [[коллекционная карточная игра]] — для мобильных устройств;
* ''[[Assault Android Cactus]]'', ''{{Нп3|The Golf Club}}'' — [[Аркада (игра)|аркадный]] [[шутер]] и [[спортивный симулятор]] — для игровых консолей.
* ''[[Assault Android Cactus]]'', ''{{iw|The Golf Club||en|The Golf Club}}'' — [[Аркада (жанр)|аркадный]] [[шутер]] и [[спортивный симулятор]] — для игровых консолей.


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


Есть возможность создавать приложения для запуска в браузерах с помощью специального [[плагин|подключаемого модуля]] Unity ''(Unity Web Player)'', а также с помощью реализации технологии WebGL. Ранее была экспериментальная поддержка реализации проектов в рамках модуля [[Adobe Flash Player]]<ref>{{cite web|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|lang=en|accessdate=2012-03-11|archiveurl=https://www.webcitation.org/68HwtiRvm?url=http://venturebeat.com/2011/12/21/unity-technologies-developers-will-be-able-to-publish-3d-games-via-adobe-flash/|archivedate=2012-06-09}}</ref>, но позже команда разработчиков Unity приняла сложное решение по отказу<ref>{{Cite web|url = http://blogs.unity3d.com/2013/04/23/sunsetting-flash|title = Sunsetting Flash|author = David Helgason|date = 2013-04-23|publisher = The Unity Blog|lang = en|access-date = 2014-12-09|archive-date = 2014-11-29|archive-url = https://web.archive.org/web/20141129151249/http://blogs.unity3d.com/2013/04/23/sunsetting-flash/|deadlink = no}}</ref> от этого.
Есть возможность создавать приложения для запуска в браузерах с помощью специального [[плагин|подключаемого модуля]] 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> от этого.


В декабре 2009 года [[Gamasutra]] назвал Unity одним из самых значительных участников на рынке игровых компаний<ref>{{cite web|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|quote=Unity has become a major player in the market as of 2009, and there's more to come|publisher=Gamasutra|lang=en|accessdate=2012-03-11|archiveurl=https://www.webcitation.org/68HwuoEN8?url=http://www.gamasutra.com/view/news/26243/Gamasutras_Best_Of_2009_Top_5_Game_Companies.php|archivedate=2012-06-09}}</ref>.
В декабре 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>.


== Лицензии ==
== Лицензии ==
Бесплатная версия Unity имеет некоторые ограничения, но для неё есть возможность распространять игры при условии, что ежегодный доход с игры не превышает {{число|100000}} [[Доллар США|долларов]]<ref name=":0">{{Cite web |url=http://unity3d.com/company/legal/eula |title=Unity Software License Agreement 4.x |access-date=2014-03-06 |archive-date=2014-03-07 |archive-url=https://web.archive.org/web/20140307151053/http://unity3d.com/company/legal/eula |deadlink=no }}</ref>.
Бесплатная версия Unity имеет некоторые ограничения, но для неё есть возможность распространять игры при условии, что ежегодный доход с игры не превышает {{число|100000}} [[Доллар США|долларов]]<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>.


{| class="wikitable" class="mw-datatable"
{| class="wikitable" class="mw-datatable"
|+
|+
|-
|-
! Тип лицензии !!Доход компании в год!! Экран приветствия !! Сборка в облачном хранилище !! Отчёты по производительности !! Премиум поддержка !! Доступ к [[Исходный код|исходному коду]]!! Цена (в [[Доллар США|долларах]])
! Тип лицензии !!Доход компании в год!! Экран приветствия !! Сборка в облачном хранилище !! Отчёты по производительности !! Премиум поддержка !! Доступ к [[Исходный код|исходному коду]]
|-
|-
| style="background:#eaecf0;" | '''Personal''' || До {{число|100000}} долларов|| «Made With Unity» и необязательная пользовательская анимация || Стандартная || {{нет|Нет}} || {{нет|Нет}} || {{нет|Нет}} || Бесплатно
| style="background:#eaecf0;" | '''Personal''' || До {{число|100000}} долларов|| «Made With Unity» и необязательная пользовательская анимация || Стандартная || {{нет|Нет}} || {{нет|Нет}} || {{нет|Нет}}
|-
|-
| style="background:#eaecf0;" | '''Plus''' || До {{число|200000}} долларов|| Пользовательская анимация и/или «Made With Unity» || Приоритетная || {{да|Да}} || {{нет|Нет}} || {{нет|Нет}} || 399 в год или 40 ежемесячно
| style="background:#eaecf0;" | '''Plus''' || До {{число|200000}} долларов|| Пользовательская анимация и/или «Made With Unity» || Приоритетная || {{да|Да}} || {{нет|Нет}} || {{нет|Нет}}
|-
|-
| style="background:#eaecf0;" | '''Pro''' || Неограничен || Пользовательская анимация и/или «Made With Unity» || Одновременная || {{да|Да}} || {{да|Да}} || {{нет|Нет}} || 1800 в год или 150 ежемесячно
| style="background:#eaecf0;" | '''Pro''' || Неограничен || Пользовательская анимация и/или «Made With Unity» || Одновременная || {{да|Да}} || {{да|Да}} || {{нет|Нет}}
|-
|-
| style="background:#eaecf0;" | '''Enterprise''' || Неограничен || Пользовательская анимация и/или «Made With Unity» || Выделенные ресурсы || {{да|Да}} || {{да|Да}} || {{да|Да}} || 200$ в месяц
| style="background:#eaecf0;" | '''Enterprise''' || Неограничен || Пользовательская анимация и/или «Made With Unity» || Выделенные ресурсы || {{да|Да}} || {{да|Да}} || {{да|Да}}
|-
| style="background:#eaecf0;" | '''Industry''' || Неограничен || Пользовательская анимация и/или «Made With Unity» ||Выделенные ресурсы|| {{да|Да}} || {{да|Да}} || {{да|Да}}

|}
|}
По другим данным, компания взимает с каждого разработчика ежегодную плату, которая варьируется от $400 до $4000 в зависимости
По другим данным, компания взимает с каждого разработчика ежегодную плату, которая варьируется от $400 до $4000 в зависимости от требуемых функций и размера компании-разработчика{{sfn|Болл|2023|с= 130}}.

от требуемых функций и размера компании-разработчика{{sfn|Болл|2023|с= 130}}.
Unity Plus больше не доступен для новых подписчиков. Для тех, кто им уже пользуется есть возможность продлить тарифный план Unity Plus до 27 марта 2024 года.<ref>{{Cite web|url=https://support.unity.com/hc/en-us/articles/20067051611156-How-can-I-upgrade-to-Unity-Pro-for-the-price-of-Unity-Plus-#:~:text=Cause%3A,%2C%20until%20December%2031%2C%202023.|title=How can I upgrade to Unity Pro for the price of Unity Plus?|lang=en|author=Unity Technologies|website=unity.com|date=2023-09-18|url-status=live|access-date=2023-12-28|archive-date=2023-12-28|archive-url=https://web.archive.org/web/20231228013452/https://support.unity.com/hc/en-us/articles/20067051611156-How-can-I-upgrade-to-Unity-Pro-for-the-price-of-Unity-Plus-#:~:text=Cause%3A,%2C%20until%20December%2031%2C%202023.}}</ref>


== Примечания ==
== Примечания ==
{{примечания|2}}
{{примечания}}


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


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

{{Игровые движки}}
{{Игровые движки}}



Текущая версия от 11:14, 24 сентября 2024

Unity
Логотип программы Unity
Скриншот программы Unity
Тип игровой движок, интегрированная среда разработки, фреймворк
Разработчик Unity Technologies
Написана на C++ (Runtime), C#
Операционные системы Windows, macOS, Linux, Android и iOS
Языки интерфейса английский
Первый выпуск 8 июня 2005 года
Аппаратные платформы ПК
PlayStation 4
PlayStation 5
Xbox One
Xbox Series X/S
Nintendo Switch
Apple TV
Apple Vision Pro, в Q1 2024
Последняя версия
Бета-версия
Состояние активное
Лицензия проприетарная
Сайт unity.com (англ.)
Логотип Викисклада Медиафайлы на Викискладе

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

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

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

Возможности

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

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

Проект в 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)[4].

Третьим преимуществом называется модульная система компонентов 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[4].

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

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

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

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

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

Unity Plus больше не доступен для новых подписчиков. Для тех, кто им уже пользуется есть возможность продлить тарифный план Unity Plus до 27 марта 2024 года.[20]

Примечания

[править | править код]
  1. https://unity3d.com/get-unity/download/archive
  2. Unity Editor Beta Releases (англ.) — 2023.
  3. Хокинг, 2016, p. 16.
  4. 1 2 3 Хокинг, 2016, p. 22.
  5. Unity Technologies. Unity - Manual: Unity architecture (англ.). docs.unity3d.com. Дата обращения: 13 мая 2022. Архивировано 13 мая 2022 года.
  6. Unity Technologies. Unity - Manual: Physics (англ.). docs.unity3d.com. Дата обращения: 13 мая 2022. Архивировано 13 мая 2022 года.
  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.
  20. Unity Technologies. How can I upgrade to Unity Pro for the price of Unity Plus? (англ.). unity.com (18 сентября 2023). Дата обращения: 28 декабря 2023. Архивировано 28 декабря 2023 года.

Литература

[править | править код]
  • Хокинг, Джозеф. 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