Enhet | |
---|---|
Sorts | spelmotor , integrerad utvecklingsmiljö , konstruktör , ramverk |
Utvecklaren | Unity Technologies |
Skrivet i | C++ (körtid), C# |
Operativ system | Microsoft Windows , macOS , Linux , Android och iOS |
Gränssnittsspråk | engelsk |
Första upplagan | 8 juni 2005 |
Hårdvaruplattform |
PC PlayStation 4 PlayStation 5 Xbox One Xbox Series X Apple TV |
senaste versionen |
|
betaversion |
|
stat | aktiva |
Licens | Proprietär |
Hemsida | unity.com _ |
Mediafiler på Wikimedia Commons |
Unity ( unity i översättning från engelska - "unity", uttalas som "unity") är en plattformsoberoende utvecklingsmiljö för datorspel [3] , utvecklad av det amerikanska företaget Unity Technologies . Unity låter dig skapa applikationer som körs på mer än 25 olika plattformar, inklusive persondatorer , spelkonsoler , mobila enheter , internetapplikationer och andra [4] . Releasen av Unity skedde 2005 och sedan dess har det skett en konstant utveckling.
De främsta fördelarna med Unity är närvaron av en visuell utvecklingsmiljö , plattformsoberoende stöd och ett modulärt system av komponenter. Nackdelarna inkluderar uppkomsten av svårigheter vid arbete med flerkomponentkretsar och svårigheter vid anslutning av externa bibliotek .
Tusentals spel, applikationer, visualiseringar av matematiska modeller är skrivna på Unity, som täcker många plattformar och genrer. Samtidigt används Unity av både stora utvecklare och oberoende studior .
Unity-redigeraren har ett enkelt Drag&Drop -gränssnitt, samt installation av KALI-plugins, som är lätt att konfigurera, bestående av olika fönster, så att du kan felsöka spelet direkt i editorn . Motorn använder C# [5] för att skriva skript . Boo ( Python- dialekt , borttagen i version 5) och en JavaScript -modifiering känd som UnityScript (fasad i version 2017.1) stöddes också tidigare . Fysikberäkningar utförs av NVIDIAs PhysX -fysikmotor för 3D-fysik och Box2D för 2D-fysik [6] . Graphics API - DirectX (för närvarande stöds DX 11 , DX 12 )
Projektet i Unity är uppdelat i scener ( nivåer ) - separata filer som innehåller deras spelvärldar med sina egna objekt, scenarier och inställningar. Scener kan innehålla både objekt (modeller) och tomma spelobjekt - objekt som inte har en modell ("dummy") [7] . Objekt innehåller i sin tur uppsättningar av komponenter som skript interagerar med. Objekt har också ett namn (i Unity är två eller flera objekt med samma namn tillåtna i en scen), det kan finnas en tagg (etikett) och ett lager som den ska visas på. Så, alla objekt på scenen måste ha en Transform-komponent - den lagrar koordinaterna för objektets placering, rotation och storlek längs alla tre axlarna.
Unity stöder också stel kropps- och tygfysik, såväl som fysik av Ragdoll (trasdocka).
Redaktören har ett objektsarvssystem; underordnade objekt kommer att upprepa alla ändringar i det överordnade objektets position, rotation och skala.
Skript i editorn är kopplade till objekt som separata komponenter.
När du importerar en textur till Unity kan du generera alfakanal , mip-nivåer , normalkarta , ljuskarta , reflektionskarta, men du kan inte fästa en textur direkt till modellen - ett material kommer att skapas till vilket en skuggning kommer att tilldelas , och sedan kommer materialet att bifogas modellen. Unity-redigeraren stöder skrivning och redigering av shaders. Unity-redigeraren har en komponent för att skapa animationer, men animering kan också förskapas i en 3D-redigerare och importeras tillsammans med modellen och sedan delas upp i filer.
Unity 3D stöder Level Of Detail (förkortning LOD)-systemet, vars essens är att på långt avstånd från spelaren ersätts mycket detaljerade modeller av mindre detaljerade, och vice versa, såväl som ocklusionsutslagningssystemet, kärnan i detta är att objekt, geometri och kollisioner som inte är i kamerans synfält inte renderas, vilket minskar belastningen på den centrala processorn och gör att du kan optimera projektet. När ett projekt kompileras skapas en körbar (.exe) spelfil (för Windows ), och i en separat mapp - speldata (inklusive alla spelnivåer och dynamiskt länkade bibliotek).
Motorn stöder många populära format. Modeller, ljud, texturer, material, skript kan packas i .unitypackage-format och överföras till andra utvecklare, eller laddas upp för fri tillgång. Samma format används i den interna Unity Asset Store, där utvecklare kan dela olika element som behövs för att skapa spel gratis och för pengar. För att använda Unity Asset Store måste du ha ett Unity-utvecklarkonto.
UNet (ett bibliotek för att implementera multiplayer i Unity-spel) har tagits bort sedan version 2018.4; det finns ingen färdig lösning för multiplayer. Du kan också använda den användarvänliga metoden för versionskontroll. Till exempel Tortoise SVN, Git eller Source Gear .
Unity inkluderar Unity Asset Server, ett utvecklingsverktyg baserat på Unity som är ett tillägg som lägger till versionskontroll och ett antal andra lösningar på serversidan.
Vanligtvis ger en spelmotor en hel del funktionalitet som gör att de kan användas i olika spel, som inkluderar fysiksimulering, normala kartor, dynamiska skuggor och mer. Till skillnad från många spelmotorer har Unity två huvudsakliga fördelar: närvaron av en visuell utvecklingsmiljö och plattformsoberoende stöd [8] . Den första faktorn inkluderar inte bara visuella modelleringsverktyg utan också en integrerad miljö , monteringskedjan , som syftar till att förbättra utvecklarnas produktivitet, i synnerhet stadierna av prototypframställning och testning. Under plattformsoberoende stöd tillhandahålls inte bara distributionsplatser (installation på en persondator, på en mobil enhet, konsol, etc.), utan också tillgängligheten av utvecklingsverktyg (den integrerade miljön kan användas under Windows och Mac OS) [4] .
Den tredje fördelen är Unitys modulära komponentsystem, som används för att konstruera spelobjekt när de senare är kombinerbara paket av funktionella element. Till skillnad från arvsmekanismer skapas objekt i Unity genom att kombinera funktionsblock , snarare än att placeras i noder i ett arvsträd. Detta tillvägagångssätt underlättar skapandet av prototyper, vilket är viktigt vid spelutveckling [9] .
Som nackdelar ges begränsningen av den visuella editorn när man arbetar med flerkomponentsdiagram, när visuellt arbete är svårt i komplexa scener. Den andra nackdelen är bristen på Unity-stöd för länkar till externa bibliotek , som programmerare måste konfigurera sig för att arbeta med, och detta gör också lagarbete svårt. En annan nackdel är förknippad med användningen av instansmallar ( engelska prefabs ). Å ena sidan erbjuder detta Unity-koncept ett flexibelt tillvägagångssätt för visuell redigering av objekt, men å andra sidan är det svårt att redigera sådana mallar [9] . Dessutom har WebGL- versionen av motorn, på grund av detaljerna i dess arkitektur (översätta kod från C# till C++ och vidare till JavaScript), ett antal olösta problem med prestanda, minnesförbrukning och prestanda på mobila enheter [10] [11 ] .
Hundratals spel, applikationer och simuleringar skrivs på Unity [12] , Unity används både av stora utvecklare (till exempel Blizzard [13] ) och i skapandet av indiespel . Datorspel på Unity täcker många plattformar och genrer, typiska exempel på dessa är [14] :
Den första versionen av Unity dök upp 2005 när spelmotorn tillkännagavs vid Worldwide Developers Conference . Ursprungligen var Unity uteslutande avsedd för Mac-datorer, och i augusti släpptes en uppdatering för att låta den fungera under Windows. Följande versioner lade gradvis till nya plattformar och distributioner: plattformsoberoende webbspelare 2006, iPhone 2008, Android 2010 och vidare på Xbox- och Playstation-spelkonsolerna [4] .
Det är möjligt att skapa applikationer att köra i webbläsare med hjälp av en speciell plug-in Unity (Unity Web Player) , samt att använda implementeringen av WebGL-teknik. Tidigare fanns det experimentellt stöd för implementering av projekt inom Adobe Flash Player -modulen [15] , men senare tog Unitys utvecklingsteam det svåra beslutet att överge detta [16] .
I december 2009 utsågs Unity av Gamasutra till en av de viktigaste spelarna på spelbolagsmarknaden [17] .
Gratisversionen av Unity har vissa begränsningar, men det är möjligt för den att distribuera spel, förutsatt att den årliga inkomsten från spelet inte överstiger 100 000 $ [18] .
Licens typ | Bolagets inkomst per år | Välkomstskärm | Flerspelarfunktioner | Inbyggd molnlagring | Mörkt tema | Resultatrapporter | Premium Support | Tillgång till källkod | Pris (i dollar ) |
---|---|---|---|---|---|---|---|---|---|
Personlig | Upp till $ 100 000 | "Made With Unity" och valfri anpassad animering | 20 CCU | Standard | Ja | Inte | Inte | Inte | Är gratis |
Plus | Upp till $ 200 000 | Anpassad animation och/eller "Made With Unity" | 50 CCU | Prioritet | Ja | Ja | Inte | Inte | 399 per år eller 40 per månad |
Proffs | Inte begränsad | Anpassad animation och/eller "Made With Unity" | 200 CCU | Samtidig | Ja | Ja | Ja | Inte | 1800 per år eller 150 per månad |
Företag | Inte begränsad | Anpassad animation och/eller "Made With Unity" | Anpassad multiplayer | Dedikerade resurser | Ja | Ja | Ja | Ja | 200 $ per månad |
Spelmotorer | |||||||
---|---|---|---|---|---|---|---|
Grafisk | Fri GLScene Horde3D Irrlicht TROLL OpenSceneGraph Proprietär Outra | ||||||
Fysisk | Fri Box2D Kula Jordekorre newton ODE. Tokamak Proprietär DMM Havok Fysik PhysX | ||||||
generell mening |
| ||||||
Specialiserad |
| ||||||
Lista över spelmotorer |