Unity (spilmotor)

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 .

Funktioner

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.

Fordele og ulemper

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 ] .

Spil på Unity

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] :

Historie

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] .

Licenser

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

Noter

  1. https://unity3d.com/get-unity/download/archive
  2. Unity 2022.1 beta er nu tilgængelig  (engelsk) - 2021.
  3. Hawking, 2016 , s. 16.
  4. 1 2 3 Hawking, 2016 , s. 22.
  5. Unity Technologies. Unity-Manual : Unity-arkitektur  . docs.unity3d.com . Hentet 13. maj 2022. Arkiveret fra originalen 13. maj 2022.
  6. Unity Technologies. Unity - Manual: Physics  (engelsk) . docs.unity3d.com . Hentet 13. maj 2022. Arkiveret fra originalen 13. maj 2022.
  7. Unity Technologies. Unity-Manual : Scener  . docs.unity3d.com . Hentet 13. maj 2022. Arkiveret fra originalen 18. april 2022.
  8. Hawking, 2016 , s. 21.
  9. 1 2 Hawking, 2016 , s. 23.
  10. Hukommelsesovervejelser ved målretning mod WebGL . Hentet 24. august 2018. Arkiveret fra originalen 24. august 2018.
  11. Verge3D versus Unity WebGL - Pipeline og ydeevne . Hentet 24. august 2018. Arkiveret fra originalen 24. august 2018.
  12. Hawking, 2016 , s. 24-26.
  13. Selv Hearthstone kører på Unity - og det er derfor, det allerede er på iPad . Hentet 29. september 2017. Arkiveret fra originalen 5. november 2017.
  14. Hawking, 2016 , s. 25-.
  15. Dean Takahashi. Unity Technologies-udviklere vil være i stand til at udgive 3D-spil via Adobe Flash  . VentureBeat (21. december 2011). Hentet 11. marts 2012. Arkiveret fra originalen 9. juni 2012.
  16. David Helgason. Solnedgang  Flash . Enhedsbloggen (23. april 2013). Dato for adgang: 9. december 2014. Arkiveret fra originalen 29. november 2014.
  17. Christian Nutt. Gamasutras bedste fra 2009: Top 5  spilvirksomheder . Gamasutra. - "Unity er blevet en stor spiller på markedet fra 2009, og der er mere i vente." Hentet 11. marts 2012. Arkiveret fra originalen 9. juni 2012.
  18. Unity Software License Agreement 4.x. Dato for adgang: 6. marts 2014. Arkiveret fra originalen 7. marts 2014.

Litteratur

Links