Unitate | |
---|---|
Tip de | motor de joc , mediu de dezvoltare integrat , constructor , cadru |
Dezvoltator | Unity Technologies |
Scris in | C++ (Runtime), C# |
Sistem de operare | Microsoft Windows , macOS , Linux , Android și iOS |
Limbi de interfață | Engleză |
Prima editie | 8 iunie 2005 |
Platformă hardware |
PC PlayStation 4 PlayStation 5 Xbox One Xbox Series X Apple TV |
ultima versiune |
|
versiune beta |
|
Stat | activ |
Licență | proprietate |
Site-ul web | unity.com _ |
Fișiere media la Wikimedia Commons |
Unity ( unity în traducere din engleză - „unity”, pronunțat ca „unity”) este un mediu de dezvoltare multiplatformă pentru jocuri pe calculator [3] , dezvoltat de compania americană Unity Technologies . Unity vă permite să creați aplicații care rulează pe mai mult de 25 de platforme diferite, inclusiv computere personale , console de jocuri , dispozitive mobile , aplicații de Internet și altele [4] . Lansarea Unity a avut loc în 2005 și de atunci a existat o dezvoltare constantă.
Principalele avantaje ale Unity sunt prezența unui mediu de dezvoltare vizuală , suport multi-platformă și un sistem modular de componente. Dezavantajele includ apariția dificultăților la lucrul cu circuite multicomponente și dificultăți la conectarea bibliotecilor externe .
Mii de jocuri, aplicații, vizualizări ale modelelor matematice sunt scrise pe Unity, care acoperă multe platforme și genuri. În același timp, Unity este folosit atât de dezvoltatorii mari, cât și de studiourile independente .
Editorul Unity are o interfață simplă Drag&Drop , precum și instalarea pluginurilor KALI, care este ușor de configurat, constând din diverse ferestre, astfel încât să puteți depana jocul chiar în editor . Motorul folosește C# [5] pentru a scrie scripturi . Boo ( dialectul Python , eliminat în versiunea 5) și o modificare JavaScript cunoscută sub numele de UnityScript (învechit în versiunea 2017.1) au fost , de asemenea, acceptate anterior . Calculele fizice sunt efectuate de motorul de fizică PhysX al NVIDIA pentru fizica 3D și Box2D pentru fizica 2D [6] . Graphics API - DirectX ( acceptat în prezent DX 11 , DX 12 )
Proiectul din Unity este împărțit în scene ( nivele ) - fișiere separate care conțin lumile lor de joc cu propriul set de obiecte, scenarii și setări. Scenele pot conține atât, de fapt, obiecte (modele), cât și obiecte de joc goale - obiecte care nu au model („manichin”) [7] . Obiectele, la rândul lor, conțin seturi de componente cu care scripturile interacționează. Obiectele au și un nume (în Unity, două sau mai multe obiecte cu aceleași nume sunt permise într-o scenă), poate exista o etichetă (etichetă) și un layer pe care ar trebui să fie afișată. Deci, orice obiect de pe scenă trebuie să aibă o componentă Transform - aceasta stochează coordonatele locației, rotației și dimensiunii obiectului de-a lungul tuturor celor trei axe.
Unity acceptă, de asemenea, fizica corpului rigid și pânză, precum și fizica de tip Ragdoll (păpușă de cârpă).
Editorul are un sistem de moștenire a obiectelor; obiectele copil vor repeta toate modificările de poziție, rotație și scară ale obiectului părinte.
Scripturile din editor sunt atașate obiectelor ca componente separate.
Când importați o textură în Unity, puteți genera canal alfa , niveluri mip , hartă normală , hartă luminoasă , hartă de reflexie, dar nu puteți atașa o textură direct la model - va fi creat un material, la care se va crea un shader . va fi atribuit , iar apoi materialul va fi atașat modelului. Editorul Unity acceptă scrierea și editarea shaderelor. Editorul Unity are o componentă pentru crearea animației, dar animația poate fi, de asemenea, pre-creată într-un editor 3D și importată împreună cu modelul, apoi împărțită în fișiere.
Unity 3D acceptă sistemul Level Of Detail (abreviar LOD), a cărui esență este că, la distanță mare de jucător, modelele foarte detaliate sunt înlocuite cu altele mai puțin detaliate și invers, precum și sistemul de sacrificare Occlusion, a cărui esență este că obiectele, geometria și coliziunile care nu se află în câmpul vizual al camerei nu sunt redate, ceea ce reduce sarcina pe procesorul central și vă permite să optimizați proiectul. La compilarea unui proiect, se creează un fișier de joc executabil (.exe) (pentru Windows ) și într-un folder separat - datele jocului (inclusiv toate nivelurile de joc și bibliotecile legate dinamic).
Motorul acceptă multe formate populare. Modelele, sunete, texturi, materiale, scripturi pot fi împachetate în format .unitypackage și transferate altor dezvoltatori sau încărcate pentru acces gratuit. Același format este folosit în magazinul intern Unity Asset, unde dezvoltatorii pot partaja diverse elemente necesare pentru a crea jocuri gratuit și pentru bani. Pentru a utiliza Unity Asset Store, trebuie să aveți un cont de dezvoltator Unity.
UNet (o bibliotecă pentru implementarea jocurilor multiplayer în jocurile Unity) a fost eliminată începând cu versiunea 2018.4; nu există o soluție ieșită din cutie pentru multiplayer. De asemenea, puteți utiliza metoda ușor de utilizat de control al versiunilor. De exemplu, Tortoise SVN, Git sau Source Gear .
Unity include Unity Asset Server, un instrument de dezvoltare colaborativă bazat pe Unity, care este un supliment care adaugă controlul versiunilor și o serie de alte soluții pe partea de server.
De obicei, un motor de joc oferă o mulțime de funcționalități care le permit să fie utilizate în diferite jocuri, care includ simulare fizică, hărți normale, umbre dinamice și multe altele. Spre deosebire de multe motoare de joc, Unity are două avantaje principale: prezența unui mediu de dezvoltare vizuală și suport multiplatform [8] . Primul factor include nu numai instrumentele de modelare vizuală, ci și un mediu integrat , lanțul de asamblare , care are ca scop îmbunătățirea productivității dezvoltatorilor, în special, etapele de prototipare și testare. În cadrul suportului multiplatformă, sunt furnizate nu numai site-uri de implementare (instalare pe un computer personal, pe un dispozitiv mobil, consolă etc.), ci și disponibilitatea instrumentelor de dezvoltare (mediul integrat poate fi utilizat sub Windows și Mac OS) [4] .
Al treilea avantaj este sistemul de componente modulare al Unity, care este folosit pentru a construi obiecte de joc atunci când acestea din urmă sunt pachete combinabile de elemente funcționale. Spre deosebire de mecanismele de moștenire , obiectele din Unity sunt create prin combinarea blocurilor funcționale , în loc să fie plasate în nodurile unui arbore de moștenire. Această abordare facilitează crearea de prototipuri, ceea ce este important în dezvoltarea jocului [9] .
Ca dezavantaje, limitarea editorului vizual este dată când se lucrează cu diagrame cu mai multe componente, când munca vizuală este dificilă în scene complexe. Al doilea dezavantaj este lipsa suportului Unity pentru legăturile către biblioteci externe , cu care programatorii trebuie să se configureze pentru a lucra și acest lucru îngreunează și munca în echipă. Un alt dezavantaj este asociat cu utilizarea șabloanelor de instanță ( prefabricate în engleză ). Pe de o parte, acest concept Unity oferă o abordare flexibilă a editării vizuale a obiectelor, dar pe de altă parte, editarea unor astfel de șabloane este dificilă [9] . De asemenea, versiunea WebGL a motorului, datorită specificului arhitecturii sale (traducerea codului din C# în C++ și mai departe în JavaScript), are o serie de probleme nerezolvate cu performanța, consumul de memorie și performanța pe dispozitivele mobile [10] [11 ]. ] .
Sute de jocuri, aplicații și simulări sunt scrise pe Unity [12] , Unity este folosit atât de mari dezvoltatori (de exemplu, Blizzard [13] ), cât și în crearea de jocuri indie . Jocurile pe computer de pe Unity acoperă multe platforme și genuri, dintre care exemple tipice sunt [14] :
Prima versiune a Unity a apărut în 2005, când motorul de joc a fost anunțat la Conferința Mondială a Dezvoltatorilor . Inițial, Unity a fost destinat exclusiv computerelor Mac, iar în august a fost lansată o actualizare pentru a-i permite să funcționeze sub Windows. Următoarele versiuni au adăugat treptat noi platforme și implementări: player web multiplatform în 2006, iPhone în 2008, Android în 2010 și mai departe pe consolele de jocuri Xbox și Playstation [4] .
Este posibil să se creeze aplicații pentru a rula în browsere folosind un plug-in special Unity (Unity Web Player) , precum și folosind implementarea tehnologiei WebGL. Anterior, a existat suport experimental pentru implementarea proiectelor în cadrul modulului Adobe Flash Player [15] , dar ulterior echipa de dezvoltare Unity a luat decizia dificilă de a abandona acest lucru [16] .
În decembrie 2009, Unity a fost numit de Gamasutra drept unul dintre cei mai importanți jucători de pe piața companiilor de jocuri [17] .
Versiunea gratuită a Unity are unele limitări, dar este posibil ca acesta să distribuie jocuri, cu condiția ca venitul anual din joc să nu depășească 100.000 USD [18] .
Tipul licenței | Venitul companiei pe an | Ecran de bun venit | Caracteristici multiplayer | Construiți în stocare în cloud | Tema întunecată | Rapoarte de performanță | Asistență premium | Acces la codul sursă | Preț (în dolari ) |
---|---|---|---|---|---|---|---|---|---|
Personal | Până la 100.000 USD | „Made With Unity” și animație personalizată opțională | 20 de CCU | Standard | da | Nu | Nu | Nu | Este gratuit |
La care se adauga | Până la 200.000 USD | Animație personalizată și/sau „Made With Unity” | 50 de CCU | Prioritate | da | da | Nu | Nu | 399 pe an sau 40 lunar |
Pro | Nu este limitat | Animație personalizată și/sau „Made With Unity” | 200 CCU-uri | Simultan | da | da | da | Nu | 1800 pe an sau 150 lunar |
Afacere | Nu este limitat | Animație personalizată și/sau „Made With Unity” | Multiplayer personalizat | Resurse dedicate | da | da | da | da | 200$ pe lună |
Motoare de joc | |||||||
---|---|---|---|---|---|---|---|
Grafic | Gratuit GLScene Horde3D Irrlicht CĂPCĂUN OpenSceneGraph Proprietate Outerra | ||||||
Fizic | Gratuit Box2D Glonţ Chipmunk newton ODĂ. Tokamak Proprietate DMM Havok Fizica PhysX | ||||||
scop general |
| ||||||
De specialitate |
| ||||||
Lista motoarelor de joc |