Yhtenäisyys | |
---|---|
Tyyppi | pelimoottori , integroitu kehitysympäristö , rakentaja , kehys |
Kehittäjä | Unity Technologies |
Sisään kirjoitettu | C++ (ajoaika), C# |
Käyttöjärjestelmä | Microsoft Windows , macOS , Linux , Android ja iOS |
Käyttöliittymäkielet | Englanti |
Ensimmäinen painos | 8. kesäkuuta 2005 |
Laitteistoalusta |
PC PlayStation 4 PlayStation 5 Xbox One Xbox Series X Apple TV |
uusin versio |
|
beta-versio |
|
Osavaltio | aktiivinen |
Lisenssi | omistusoikeus |
Verkkosivusto | unity.com _ |
Mediatiedostot Wikimedia Commonsissa |
Unity ( englannin kielestä käännettynä unity - "unity", äännetään nimellä "unity") on amerikkalaisen Unity Technologies -yrityksen kehittämä tietokonepelien [3] monikäyttöympäristö . Unityn avulla voit luoda sovelluksia, jotka toimivat yli 25 eri alustalla, mukaan lukien henkilökohtaiset tietokoneet , pelikonsolit , mobiililaitteet , Internet-sovellukset ja muut [4] . Unity julkaistiin vuonna 2005 ja sen jälkeen kehitystä on tapahtunut jatkuvasti.
Unityn tärkeimmät edut ovat visuaalisen kehitysympäristön läsnäolo , eri alustojen tuki ja modulaarinen komponenttijärjestelmä. Haittoja ovat monikomponenttipiirien kanssa työskentelyyn liittyvien vaikeuksien ilmeneminen ja ulkoisten kirjastojen liittämisen vaikeudet .
Unitylle on kirjoitettu tuhansia pelejä, sovelluksia, matemaattisten mallien visualisointeja, jotka kattavat monia alustoja ja genrejä. Samaan aikaan Unitya käyttävät sekä suuret kehittäjät että itsenäiset studiot .
Unity-editorissa on yksinkertainen Drag&Drop -käyttöliittymä sekä KALI-liitännäisten asennus, joka on helppo konfiguroida ja joka koostuu useista eri ikkunoista, joten voit tehdä pelin virheenkorjauksen suoraan editorissa . Moottori käyttää C# [5] komentosarjojen kirjoittamiseen . Boo ( Python -murre , poistettu versiosta 5) ja JavaScript -muutos , joka tunnetaan nimellä UnityScript (poistettu käytöstä versiossa 2017.1) , tuettiin myös aiemmin . Fysiikkalaskelmat suorittaa NVIDIAn PhysX - fysiikkamoottori 3D-fysiikkaa varten ja Box2D 2D-fysiikkaa varten [6] . Graphics API - DirectX (tällä hetkellä DX 11 , DX 12 tuettu )
Projekti Unityssa on jaettu kohtauksiin ( tasoihin ) - erillisiin tiedostoihin, jotka sisältävät heidän pelimaailmansa omilla esineillä, skenaarioilla ja asetuksilla. Kohtaukset voivat sisältää sekä itse asiassa esineitä (malleja) että tyhjiä peliobjekteja - esineitä, joilla ei ole mallia ("nukke") [7] . Objektit puolestaan sisältävät joukkoja komponentteja, joiden kanssa komentosarjat ovat vuorovaikutuksessa. Objekteilla on myös nimi (Unityssä kaksi tai useampi samanniminen objekti on sallittu yhdessä kohtauksessa), voi olla tunniste (etiketti) ja taso, jolla se pitäisi näyttää. Joten missä tahansa lavan objektissa on oltava Transform-komponentti - se tallentaa kohteen sijainnin, pyörimisen ja koon koordinaatit kaikilla kolmella akselilla.
Unity tukee myös jäykkää vartalo- ja kangasfysiikkaa sekä Ragdoll (rag doll) -tyyppistä fysiikkaa.
Editorissa on objektin periytymisjärjestelmä; aliobjektit toistavat kaikki muutokset pääobjektin sijainnissa, kierrossa ja mittakaavassa.
Editorissa olevat komentosarjat liitetään objekteihin erillisinä komponentteina.
Kun tuot tekstuurin Unityyn, voit luoda alfa-kanavan , mip-tasot , normaalikartan , valokartan , heijastuskartan, mutta et voi liittää pintakuvioita suoraan malliin - syntyy materiaali, johon varjostin osoitetaan , ja sitten materiaali liitetään malliin. Unity-editori tukee varjostimien kirjoittamista ja muokkaamista. Unity-editorissa on komponentti animaation luomiseen, mutta animaatio voidaan myös luoda valmiiksi 3D-editorissa ja tuoda mallin mukana ja jakaa sitten tiedostoiksi.
Unity 3D tukee Level Of Detail (lyhennetty LOD) -järjestelmää, jonka ydin on, että kaukana soittimesta erittäin yksityiskohtaiset mallit korvataan vähemmän yksityiskohtaisilla ja päinvastoin, samoin kuin Occlusion-teurastusjärjestelmä, jonka ydin on, että esineitä, geometriaa ja törmäyksiä, jotka eivät ole kameran näkökentässä, ei renderöidä, mikä vähentää keskusprosessorin kuormitusta ja mahdollistaa projektin optimoinnin. Projektia käännettäessä luodaan suoritettava (.exe) pelitiedosto ( Windowsille ) ja erilliseen kansioon - pelitiedot (mukaan lukien kaikki pelitasot ja dynaamisesti linkitetyt kirjastot).
Moottori tukee monia suosittuja formaatteja. Mallit, äänet, tekstuurit, materiaalit ja skriptit voidaan pakata .unitypackage-muotoon ja siirtää muille kehittäjille tai ladata ilmaiseksi. Samaa muotoa käytetään sisäisessä Unity Asset Storessa, jossa kehittäjät voivat jakaa erilaisia pelien luomiseen tarvittavia elementtejä ilmaiseksi ja rahalla. Jotta voit käyttää Unity Asset Storea, sinulla on oltava Unity-kehittäjätili.
UNet (kirjasto moninpelin toteuttamiseen Unity-peleissä) on poistettu versiosta 2018.4 lähtien; moninpeliin ei ole valmiita ratkaisuja. Voit myös käyttää käyttäjäystävällistä versionhallintamenetelmää. Esimerkiksi Tortoise SVN, Git tai Source Gear .
Unity sisältää Unity Asset Serverin, Unityyn perustuvan yhteistyökehitystyökalun, joka on lisäosa, joka lisää versionhallinnan ja useita muita palvelinpuolen ratkaisuja.
Tyypillisesti pelimoottori tarjoaa paljon toimintoja, joiden avulla niitä voidaan käyttää erilaisissa peleissä, mukaan lukien fysiikan simulointi, normaalit kartat, dynaamiset varjot ja paljon muuta. Toisin kuin monilla pelimoottoreilla, Unitylla on kaksi pääetua: visuaalisen kehitysympäristön läsnäolo ja eri alustojen tuki [8] . Ensimmäinen tekijä ei sisällä vain visuaalisia mallinnustyökaluja, vaan myös integroitua ympäristöä , kokoonpanoketjua , jonka tarkoituksena on parantaa kehittäjien tuottavuutta, erityisesti prototyyppien ja testauksen vaiheita. Monialustaisen tuen yhteydessä ei tarjota vain käyttöönottosivustoja (asennus henkilökohtaiseen tietokoneeseen, mobiililaitteeseen, konsoliin jne.), vaan myös kehitystyökalujen saatavuus (integroitua ympäristöä voidaan käyttää Windows- ja Mac OS -käyttöjärjestelmissä) [4] .
Kolmas etu on Unityn modulaarinen komponenttijärjestelmä, jota käytetään peliobjektien rakentamiseen, kun viimeksi mainitut ovat yhdistettäviä toiminnallisten elementtien paketteja. Toisin kuin periytymismekanismit , Unityn objektit luodaan yhdistämällä toimintolohkoja sen sijaan, että ne sijoitettaisiin perintöpuun solmuihin. Tämä lähestymistapa helpottaa prototyyppien luomista, mikä on tärkeää pelien kehityksessä [9] .
Haittapuolena on visuaalisen editorin rajoitus, kun työskennellään monikomponenttikaavioiden kanssa, kun visuaalinen työ on vaikeaa monimutkaisissa kohtauksissa. Toinen haittapuoli on Unity-tuen puute linkeille ulkoisiin kirjastoihin , jotka ohjelmoijien on määritettävä toimimaan, ja tämä vaikeuttaa myös ryhmätyötä. Toinen haitta liittyy ilmentymämallien käyttöön ( englanninkieliset prefabs ). Yhtäältä tämä Unity-konsepti tarjoaa joustavan lähestymistavan objektien visuaaliseen muokkaamiseen, mutta toisaalta tällaisten mallien muokkaaminen on vaikeaa [9] . Lisäksi moottorin WebGL - versiolla on sen arkkitehtuurin erityispiirteiden vuoksi (koodin kääntäminen C#:sta C++:aan ja edelleen JavaScriptiin) useita ratkaisemattomia ongelmia suorituskyvyn, muistin kulutuksen ja mobiililaitteiden suorituskyvyn suhteen [10] [11 ] .
Unitylle on kirjoitettu satoja pelejä, sovelluksia ja simulaatioita [12] , Unitya käyttävät sekä suuret kehittäjät (esim. Blizzard [13] ) että indie-pelien luomisessa . Unityn tietokonepelit kattavat monia alustoja ja genrejä, joista tyypillisiä esimerkkejä ovat [14] :
Unityn ensimmäinen versio ilmestyi vuonna 2005, kun pelimoottori julkistettiin Worldwide Developers Conferencessa . Alun perin Unity oli tarkoitettu yksinomaan Mac-tietokoneille, ja elokuussa julkaistiin päivitys, jonka avulla se toimisi Windowsissa. Seuraavat versiot lisäsivät vähitellen uusia alustoja ja käyttöönottoja: cross-platform web player vuonna 2006, iPhone vuonna 2008, Android vuonna 2010 ja edelleen Xbox- ja Playstation-pelikonsolit [4] .
On mahdollista luoda selaimissa toimivia sovelluksia käyttämällä erityistä Unity -laajennusta (Unity Web Player) sekä käyttämällä WebGL-teknologiaa. Aiemmin Adobe Flash Player -moduulin projektien toteuttamiseen oli kokeellista tukea [15] , mutta myöhemmin Unityn kehitystiimi teki vaikean päätöksen luopua tästä [16] .
Joulukuussa 2009 Gamasutra nimesi Unityn yhdeksi peliyhtiömarkkinoiden merkittävimmistä toimijoista [17] .
Unityn ilmaisella versiolla on joitain rajoituksia, mutta se on mahdollista jakaa pelejä, mikäli pelistä saatavat vuositulot eivät ylitä 100 000 dollaria [18] .
Lisenssi-tyyppi | Yrityksen tulot vuodessa | Tervetuloa-näyttö | Moninpeliominaisuudet | Rakenna pilvitallennustilaan | Tumma teema | Tehokkuusraportit | Premium-tuki | Pääsy lähdekoodiin | Hinta ( dollareissa ) |
---|---|---|---|---|---|---|---|---|---|
Henkilökohtainen | Jopa 100 000 dollaria | "Made With Unity" ja valinnainen mukautettu animaatio | 20 CCU:ta | Vakio | Joo | Ei | Ei | Ei | On ilmainen |
Plus | Jopa 200 000 dollaria | Mukautettu animaatio ja/tai "Made With Unity" | 50 CCU:ta | Prioriteetti | Joo | Joo | Ei | Ei | 399 vuodessa tai 40 kuukaudessa |
Pro | Ei rajoitettu | Mukautettu animaatio ja/tai "Made With Unity" | 200 CCU:ta | Samanaikainen | Joo | Joo | Joo | Ei | 1800 vuodessa tai 150 kuukaudessa |
Yritys | Ei rajoitettu | Mukautettu animaatio ja/tai "Made With Unity" | Mukautettu moninpeli | Omat resurssit | Joo | Joo | Joo | Joo | 200 dollaria kuukaudessa |
Pelien moottorit | |||||||
---|---|---|---|---|---|---|---|
Graafinen | Vapaa GLScene Horde3D_ Irrlict OGRE OpenSceneGraph Omistusoikeus Outerra | ||||||
Fyysinen | Vapaa Box2D Luoti Maaorava_ newton OODI. Tokamak Omistusoikeus DMM Havok fysiikka PhysX | ||||||
yleinen tarkoitus |
| ||||||
Erikoistunut |
| ||||||
Luettelo pelimoottoreista |