Enhed | |
---|---|
Type | spilmotor , integreret udviklingsmiljø , konstruktør , framework |
Udvikler | Unity Technologies |
Skrevet i | C++ (Runtime), C# |
Operativ system | Microsoft Windows , macOS , Linux , Android og iOS |
Interface sprog | engelsk |
Første udgave | 8. juni 2005 |
Hardware platform |
PC PlayStation 4 PlayStation 5 Xbox One Xbox Series X Apple TV |
nyeste version |
|
beta version |
|
Stat | aktiv |
Licens | proprietære |
Internet side | unity.com _ |
Mediefiler på Wikimedia Commons |
Unity ( unity i oversættelse fra engelsk - "unity", udtales som "unity") er et tværplatformsudviklingsmiljø for computerspil [3] , udviklet af det amerikanske firma Unity Technologies . Unity giver dig mulighed for at oprette applikationer, der kører på mere end 25 forskellige platforme, inklusive personlige computere , spillekonsoller , mobile enheder , internetapplikationer og andre [4] . Udgivelsen af Unity fandt sted i 2005 , og siden da har der været en konstant udvikling.
De vigtigste fordele ved Unity er tilstedeværelsen af et visuelt udviklingsmiljø , support på tværs af platforme og et modulært system af komponenter. Ulemperne omfatter udseendet af vanskeligheder ved arbejde med flerkomponentkredsløb og vanskeligheder ved tilslutning af eksterne biblioteker .
Tusindvis af spil, applikationer, visualiseringer af matematiske modeller er skrevet på Unity, som dækker mange platforme og genrer. Samtidig bruges Unity af både store udviklere og uafhængige studier .
Unity-editoren har en enkel Drag&Drop -grænseflade, samt installation af KALI-plugins, som er let at konfigurere, bestående af forskellige vinduer, så du kan fejlsøge spillet direkte i editoren . Motoren bruger C# [5] til at skrive scripts . Boo ( Python - dialekt , fjernet i version 5) og en JavaScript -modifikation kendt som UnityScript (forældet i version 2017.1) blev også tidligere understøttet . Fysikberegninger udføres af NVIDIAs PhysX fysikmotor til 3D-fysik og Box2D til 2D-fysik [6] . Graphics API - DirectX (i øjeblikket understøttet DX 11 , DX 12 )
Projektet i Unity er opdelt i scener ( niveauer ) - separate filer, der indeholder deres spilverdener med deres eget sæt af objekter, scenarier og indstillinger. Scener kan faktisk indeholde både objekter (modeller) og tomme spilobjekter - objekter der ikke har en model ("dummy") [7] . Objekter indeholder til gengæld sæt af komponenter, som scripts interagerer med. Objekter har også et navn (i Unity er to eller flere objekter med samme navn tilladt i en scene), der kan være et tag (label) og et lag, som det skal vises på. Så ethvert objekt på scenen skal have en Transform-komponent - den gemmer koordinaterne for objektets placering, rotation og størrelse langs alle tre akser.
Unity understøtter også stiv krops- og stoffysik, såvel som Ragdoll (kludedukke) fysik.
Redaktøren har et objektnedarvningssystem; underordnede objekter vil gentage alle ændringer i det overordnede objekts position, rotation og skala.
Scripts i editoren er knyttet til objekter som separate komponenter.
Når du importerer en tekstur til Unity, kan du generere alfa-kanal , mip-niveauer , normal-kort , lys-kort , reflektionskort, men du kan ikke vedhæfte en tekstur direkte til modellen - der vil blive oprettet et materiale, hvortil en skygge vil blive tildelt , og derefter vil materialet blive knyttet til modellen. Unity-editoren understøtter skrivning og redigering af shaders. Unity-editoren har en komponent til at skabe animation, men animation kan også være præ-oprettet i en 3D-editor og importeres sammen med modellen og derefter opdeles i filer.
Unity 3D understøtter Level Of Detail (abbr. LOD) systemet, hvis essens er, at meget detaljerede modeller i lang afstand fra afspilleren erstattes af mindre detaljerede modeller, og omvendt, såvel som okklusionsnedslagningssystemet, hvis essens er, at objekter, geometri og kollisioner, der ikke er i kameraets synsfelt, ikke gengives, hvilket reducerer belastningen på den centrale processor og giver dig mulighed for at optimere projektet. Når du kompilerer et projekt, oprettes en eksekverbar (.exe) spilfil (til Windows ), og i en separat mappe - spildata (inklusive alle spilniveauer og dynamisk forbundne biblioteker).
Motoren understøtter mange populære formater. Modeller, lyde, teksturer, materialer, scripts kan pakkes i .unitypackage-format og overføres til andre udviklere eller uploades til gratis adgang. Det samme format bruges i den interne Unity Asset Store, hvor udviklere kan dele forskellige elementer, der er nødvendige for at skabe spil gratis og for penge. For at bruge Unity Asset Store skal du have en Unity-udviklerkonto.
UNet (et bibliotek til implementering af multiplayer i Unity-spil) er blevet fjernet siden version 2018.4; der er ingen out-of-the-box løsning til multiplayer. Du kan også bruge den brugervenlige metode til versionskontrol. For eksempel Tortoise SVN, Git eller Source Gear .
Unity inkluderer Unity Asset Server, et samarbejdende udviklingsværktøj baseret på Unity, som er en tilføjelse, der tilføjer versionskontrol og en række andre server-side løsninger.
Typisk giver en spilmotor en masse funktionalitet, der gør, at de kan bruges i forskellige spil, som omfatter fysiksimulering, normale kort, dynamiske skygger og meget mere. I modsætning til mange spilmotorer har Unity to hovedfordele: tilstedeværelsen af et visuelt udviklingsmiljø og support på tværs af platforme [8] . Den første faktor inkluderer ikke kun visuelle modelleringsværktøjer, men også et integreret miljø , samlekæden , som har til formål at forbedre produktiviteten hos udviklere, især stadierne af prototyping og test. Under support på tværs af platforme tilbydes ikke kun implementeringssteder (installation på en personlig computer, på en mobilenhed, konsol osv.), men også tilgængeligheden af udviklingsværktøjer (det integrerede miljø kan bruges under Windows og Mac OS) [4] .
Den tredje fordel er Unitys modulære komponentsystem, som bruges til at konstruere spilobjekter, når sidstnævnte er kombinerbare pakker af funktionelle elementer. I modsætning til arvemekanismer skabes objekter i Unity ved at kombinere funktionsblokke i stedet for at blive placeret i noder i et arvetræ. Denne tilgang letter skabelsen af prototyper, hvilket er vigtigt i spiludvikling [9] .
Som ulemper er begrænsningen af den visuelle editor givet, når der arbejdes med multi-komponent diagrammer, når visuelt arbejde er vanskeligt i komplekse scener. Den anden ulempe er manglen på Unity-understøttelse af links til eksterne biblioteker , som programmører selv skal konfigurere til at arbejde med, og dette gør også teamwork vanskeligt. En anden ulempe er forbundet med brugen af instansskabeloner ( engelsk prefabs ). På den ene side tilbyder dette Unity-koncept en fleksibel tilgang til visuel redigering af objekter, men på den anden side er det vanskeligt at redigere sådanne skabeloner [9] . Desuden har WebGL -versionen af motoren, på grund af dens arkitekturs specifikationer (oversættelse af kode fra C# til C++ og videre til JavaScript), en række uløste problemer med ydeevne, hukommelsesforbrug og ydeevne på mobile enheder [10] [11 ] .
Hundredvis af spil, applikationer og simuleringer er skrevet på Unity [12] , Unity bruges både af store udviklere (for eksempel Blizzard [13] ) og i skabelsen af indie-spil . Computerspil på Unity dækker mange platforme og genrer, typiske eksempler på disse er [14] :
Den første version af Unity dukkede op i 2005, da spilmotoren blev annonceret på Worldwide Developers Conference . Oprindeligt var Unity udelukkende beregnet til Mac-computere, og i august blev der udgivet en opdatering, så den kunne fungere under Windows. Følgende versioner tilføjede gradvist nye platforme og implementeringer: webafspiller på tværs af platforme i 2006, iPhone i 2008, Android i 2010 og yderligere på Xbox- og Playstation-spilkonsollerne [4] .
Det er muligt at oprette applikationer til at køre i browsere ved hjælp af en speciel plug-in Unity (Unity Web Player) samt ved at bruge implementeringen af WebGL-teknologi. Tidligere var der eksperimentel støtte til implementering af projekter inden for Adobe Flash Player- modulet [15] , men senere tog Unity-udviklingsteamet den svære beslutning at opgive dette [16] .
I december 2009 blev Unity udnævnt af Gamasutra til en af de mest betydningsfulde spillere på markedet for spilvirksomheder [17] .
Den gratis version af Unity har nogle begrænsninger, men det er muligt for den at distribuere spil, forudsat at den årlige indkomst fra spillet ikke overstiger $ 100.000 [18] .
Licenstype | Virksomhedens indkomst om året | Velkomstskærm | Multiplayer funktioner | Indbygget cloud storage | Mørkt tema | Præstationsrapporter | Premium Support | Adgang til kildekode | Pris (i dollars ) |
---|---|---|---|---|---|---|---|---|---|
Personlig | Op til $ 100.000 | "Made With Unity" og valgfri brugerdefineret animation | 20 CCU'er | Standard | Ja | Ikke | Ikke | Ikke | Er ledig |
Plus | Op til $ 200.000 | Brugerdefineret animation og/eller "Made With Unity" | 50 CCU'er | Prioritet | Ja | Ja | Ikke | Ikke | 399 om året eller 40 om måneden |
Pro | Ikke begrænset | Brugerdefineret animation og/eller "Made With Unity" | 200 CCU'er | Samtidig | Ja | Ja | Ja | Ikke | 1800 om året eller 150 om måneden |
Enterprise | Ikke begrænset | Brugerdefineret animation og/eller "Made With Unity" | Brugerdefineret multiplayer | Dedikerede ressourcer | Ja | Ja | Ja | Ja | 200 $ om måneden |
Spilmotorer | |||||||
---|---|---|---|---|---|---|---|
Grafisk | Ledig GLScene Horde3D Irrlicht OGRE OpenSceneGraph Proprietære Outra | ||||||
Fysisk | Ledig Box2D Kugle Jordegern newton O.D.E. Tokamak Proprietære DMM Havok Fysik PhysX | ||||||
generelle formål |
| ||||||
Specialiseret |
| ||||||
Liste over spilmotorer |