Loading AI tools
крос-платформений ігровий рушій З Вікіпедії, вільної енциклопедії
Unity — багатоплатформовий інструмент для розроблення відеоігор і застосунків, і рушій, на якому вони працюють. Створені за допомогою Unity програми працюють на настільних комп'ютерних системах, мобільних пристроях та гральних консолях у дво- та тривимірній графіці, та на пристроях віртуальної чи доповненої реальності. Застосунки, створені за допомогою Unity, підтримують DirectX та OpenGL.
Тип | Ігровий рушій,фреймворк |
---|---|
Розробник | Unity Technologies |
Стабільний випуск | 2021.3.6f1 (травень 2022) |
Операційна система | Цільові
Застарілі (v5.0)
|
Мова програмування | C Sharp і C++ |
Доступні мови | Англійська мова |
Ліцензія | Власницьке програмне забезпечення |
Вебсайт | unity3d.com |
Unity — це кросплатформовий ігровий рушій.[1] Програма-редактор Unity працює на Windows, macOS і Linux, а сам рушій може запускатися на 25 платформах[2][3], а саме iOS,[4] Android,[4] Tizen,[5] Windows,[4] Universal Windows Platform,[6] Mac,[7] Linux,[8] WebGL,[3] PlayStation 4,[4] PlayStation Vita,[9] Xbox One,[7] 3DS,[10] Oculus Rift,[4] Google Cardboard,[11] Steam VR,[12] PlayStation VR,[13] Gear VR,[3] Windows Mixed Reality,[14] Daydream,[15] Android TV,[16] Samsung Smart TV,[17] tvOS,[18] Nintendo Switch,[4] Xbox Series X та Series S,[19] PlayStation 5,[20] Facebook Gameroom,[15] Apple ARKit,[21] Google ARCore,[22] Vuforia,[22] і Magic Leap.[23]
Ігрова логіка пишеться за допомогою мови C#, раніше також була можливість використовувати Boo та JavaScript, але розробники відмовились від їх підтримки[24][25].
Редактор Unity має інтерфейс, що складається з різних вікон, які можна розташувати на свій розсуд. Завдяки цьому можна проводити налагодження гри чи застосунка прямо в редакторі. Головні вікна — це оглядач ресурсів проєкту, інспектор поточного об'єкта, вікно попереднього перегляду, оглядач сцени та оглядач ієрархії ресурсів[26].
Проєкт в Unity поділяється на сцени (рівні) — окремі файли, що містять свої ігрові світи зі своїм набором об'єктів, сценаріїв, і налаштувань. Сцени можуть містити в собі як об'єкти-моделі (ландшафт, персонажі, предмети довкілля тощо), так і порожні ігрові об'єкти — ті, що не мають моделі, проте задають поведінку інших об'єктів (тригери подій, точки збереження прогресу тощо). Їх дозволяється розташовувати, обертати, масштабувати, застосовувати до них скрипти. В них є назва (в Unity допускається наявність двох і більше об'єктів з однаковими назвами), може бути тег (мітка) і шар, на якому він повинен відображатися. Так, у будь-якого предмета на сцені обов'язково наявний компонент Transform — він зберігає в собі координати місця розташування, повороту і розмірів по всіх трьох осях. У об'єктів з видимою геометрією також за умовчанням присутній компонент Mesh Renderer, що робить модель видимою. Різні моделі можуть об'єднуватися в набори (ассети) для швидкого доступу до них. Наприклад, моделі споруд на спільну тему[27][28].
Unity підтримує фізику твердих тіл і тканини, фізику типу Ragdoll (ганчіркова лялька). У редакторі є система успадкування об'єктів; дочірні об'єкти будуть повторювати всі зміни позиції, повороту і масштабу батьківського об'єкта. Скрипти в редакторі прикріплюються до об'єктів у вигляді окремих компонентів[29].
У 2D іграх Unity переважно використовує спрайти. В 3D іграх Unity здебільшого використовує тривимірні моделі (меші)[30], на які накладаються текстури (зумовлюють вигляд поверхні об'єктів), матеріали (зумовлюють як поверхня реагуватиме на різні фактори) та шейдери (невеликі скрипти, за яким вираховується зміна кольору кожного пікселя згідно заданих параметрів, як-от розсіяння відбитого світла)[31]. В обох видах застосовуються системи часток для відображення субстанцій, таких як рідини чи дим[30].
Unity підтримує стиснення текстур, міпмапінг і різні налаштування роздільності екрана для кожної платформи; забезпечує бамп-мапінг, мапінг відображень, паралакс-мапінг, затінення навколишнього світла у екранному просторі, динамічні тіні за картами тіней, рендер у текстуру та повноекранні ефекти обробки зображення, такі як зернистість, глибина чіткості, розмиття в русі[32], відблиски віртуальних лінз або ореол навколо джерел світла[33].
Рендеринг зображення відбувається через віртуальну камеру огляду. В робочій області редактора ігрова сцена може розміщуватися як завгодно, а при рендерингу — так, як її видно з камери. В сцені може бути декілька камер, які рухаються за персонажем чи за вказаною траєкторією. Вигляд з камери подається в двовимірно чи тривимірно (в перспективі або ортографічно). Фон сцени, видимий через камеру, типово зображає небо, утворене скайбоксом, але може презентувати й інше довкілля[34].
Графічний рушій використовує DirectX (Windows), OpenGL (Mac, Windows, Linux), OpenGL ES (Android, iOS), та спеціальне власне API для Wii. Також підтримуються bump mapping, reflection mapping, parallax mapping, screen space ambient occlusion (SSAO), динамічні тіні з використанням shadow maps, render-to-texture та повноекранні ефекти post-processing.[35]
Unity підтримує файли 3ds Max, Maya, Softimage, Blender, modo, ZBrush, Cinema 4D, Cheetah3D, Adobe Photoshop, Adobe Fireworks та Allegorithmic Substance. В ігровий проєкт Unity можна імпортувати об'єкти цих програм та виконувати налаштовування за допомогою графічного інтерфейсу.[36]
Для написання шейдерів використовується ShaderLab, що підтримує шейдерні програми написані на GLSL або Cg. Шейдер може включати декілька варіантів реалізації, що дозволяє Unity визначати найкращий варіант для конкретної відеокарти.[37] Unity також має вбудовану підтримку фізичного рушія Nvidia PhysX (колишнього Ageia), підтримку симуляції одягу в системі реального часу на довільній та прив'язаній полігональній сітці (починаючи з Unity 3.0), підтримку системи ray casts та шарів зіткнення.[38]
Скриптова система ігрового рушія зроблена на Mono — вільному відкритому проєкті з реалізації .NET Framework. Програмісти можуть використовувати UnityScript (власна скриптова мова, подібна до JavaScript та ECMAScript), C# або Boo (мова програмування, подібна до Python).[39] Починаючи з версії 3.0, до Unity входить перероблена версія MonoDevelop для зневадження скриптів.[40]
З виходом версії 5.2 у 2015 році передбачена вбудована можливість редагувати скрипти у середовищі Visual Studio[41].
В Unity включено систему контролю версій для ігрових об'єктів та скриптів під назвою Unity Asset Server. Система використовує PostgreSQL, роботу зі звуком, побудовану на основі бібліотеки FMOD (з можливістю програвати Ogg Vorbis аудіофайли), відеопрогравач із кодеком Theora, рушій для побудови ландшафтів рослинності, вбудовану систему карт освітлення (Beast), мережу для мультиплеєру (RakNet) та вбудовані навігаційні меші для пошуку шляху.[42]
Сервер наборів ресурсів Unity — це платне доповнення, що додає інструментарій для спільної розробки на базі Unity багатьома користувачами одночасно та контроль версій у функціоналі Unity[43].
Багатогігабайтні проєкти з тисячами мегабайтних файлів піддаються легкому керуванню. Налаштування імпорту та інші метадані також зберігаються разом з історією їх версій. Переглядати зміни ресурсів\версій можна одразу всередині редактора Unity. Якщо файли змінюються, їх статус негайно оновлюється. Перейменування і переміщення ресурсів не створює будь-яких перешкод для безперервного робочого процесу. Сервер ресурсів Unity управляється базою даних PostgreSQL[43].
Сервер ресурсів доступний як для Mac OS X Installer, так і для Linux RPMs. Підтримка декількох платформ забезпечує гнучкість у впровадженні Сервера ресурсів Unity у наявну IT-інфраструктуру[44].
Ігровий рушій Unity було створено 2005 року, він мав на меті «демократизувати» розробку ігор, зробивши її доступною для більшої кількості розробників[45][46]. Він був показаний на Всесвітній конференції розробників 2005 року Скоттом Форстолом для Mac OS X[47]. 2006 року Unity посіла друге місце в категорії «Найкраще використання графіки Mac OS X» на Apple Design Awards від Apple Inc[48]. Unity спочатку був випущений для Mac OS X, пізніше додано підтримку Microsoft Windows і веб-браузерів.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.