Egység | |
---|---|
Típusú | játékmotor , integrált fejlesztői környezet , konstruktor , keretrendszer |
Fejlesztő | Unity Technologies |
Beírva | C++ (futásidejű), C# |
Operációs rendszer | Microsoft Windows , macOS , Linux , Android és iOS |
Interfész nyelvek | angol |
Első kiadás | 2005. június 8 |
Hardver platform |
PC PlayStation 4 PlayStation 5 Xbox One Xbox Series X Apple TV |
legújabb verzió |
|
béta verzió |
|
Állapot | aktív |
Engedély | szabadalmazott |
Weboldal | unity.com _ |
Médiafájlok a Wikimedia Commons oldalon |
A Unity ( az unity angol fordításban - "unity", ejtsd: "unity") egy többplatformos fejlesztői környezet számítógépes játékokhoz [3] , amelyet az amerikai Unity Technologies cég fejlesztett ki . A Unity lehetővé teszi olyan alkalmazások létrehozását, amelyek több mint 25 különböző platformon futnak, beleértve a személyi számítógépeket , játékkonzolokat , mobileszközöket , internetes alkalmazásokat és egyebeket [4] . A Unity megjelenésére 2005 -ben került sor, azóta folyamatos a fejlődés.
A Unity fő előnyei a vizuális fejlesztői környezet jelenléte , a platformok közötti támogatás és a moduláris komponensrendszer. A hátrányok közé tartozik a nehézségek megjelenése a többkomponensű áramkörökkel végzett munka során és a külső könyvtárak csatlakoztatásakor .
Játékok, alkalmazások, matematikai modellek vizualizációinak ezrei íródnak a Unity-re, amelyek számos platformot és műfajt lefednek. Ugyanakkor a Unityt nagy fejlesztők és független stúdiók is használják .
A Unity szerkesztő egyszerű Drag&Drop felülettel, valamint könnyen konfigurálható KALI pluginok telepítésével rendelkezik, amely különféle ablakokból áll, így közvetlenül a szerkesztőben tud hibakeresni a játékot . A motor a C# [5] -et használja a szkriptek írásához . A Boo ( Python dialektus , eltávolítva az 5-ös verzióban) és a UnityScript néven ismert JavaScript -módosítás (a 2017.1-es verzióban elavult) szintén támogatott volt. A fizikai számításokat az NVIDIA PhysX fizikai motorja a 3D fizikához és a Box2D a 2D fizikához [6] végzi . Grafikus API - DirectX (jelenleg DX 11 , DX 12 támogatott )
A Unity projekt jelenetekre ( szintekre ) van felosztva – külön fájlokra, amelyek a játékvilágukat tartalmazzák saját tárgykészlettel, forgatókönyvekkel és beállításokkal. A jelenetek tartalmazhatnak objektumokat (modelleket) és üres játékobjektumokat is – olyan objektumokat, amelyekhez nem tartozik modell ("bábu") [7] . Az objektumok viszont olyan összetevőket tartalmaznak, amelyekkel a szkriptek kölcsönhatásba lépnek. Az objektumoknak is van neve (Unity-ben két vagy több azonos nevű objektum megengedett egy jelenetben), lehet egy címke (címke) és egy réteg, amelyen meg kell jeleníteni. Tehát a színpadon lévő bármely objektumnak rendelkeznie kell egy Transform komponenssel - ez tárolja az objektum helyének, forgásának és méretének koordinátáit mindhárom tengely mentén.
A Unity támogatja a merev test- és ruhafizikát, valamint a Ragdoll (rongybaba) típusú fizikát is.
A szerkesztőnek van objektum öröklődési rendszere; a gyermekobjektumok megismétlik a szülőobjektum pozíciójában, elforgatásában és léptékében bekövetkezett összes változást.
A szerkesztőben lévő szkriptek külön komponensként vannak az objektumokhoz csatolva.
Textúra Unity-be importálásakor generálhat alfa-channel , mip-levels , normal-map , light-map , reflexiós térképet, de textúrát nem csatolhatunk közvetlenül a modellhez - egy anyag jön létre, amelyhez árnyékoló lesz hozzárendelve , majd az anyagot a modellhez csatoljuk. A Unity szerkesztő támogatja a shaderek írását és szerkesztését. A Unity szerkesztő rendelkezik animáció készítésére alkalmas komponenssel, de az animáció előre elkészíthető 3D szerkesztőben is, és a modellel együtt importálható, majd fájlokra bontható.
A Unity 3D támogatja a Level Of Detail (röv. LOD) rendszert, melynek lényege, hogy a lejátszótól távol eső, rendkívül részletgazdag modelleket kevésbé részletesek váltják fel, és fordítva, valamint az Occlusion selejtező rendszer, melynek lényege, hogy a kamera látóterében nem lévő objektumok, geometria és ütközések nem jelennek meg, ami csökkenti a központi processzor terhelését és lehetővé teszi a projekt optimalizálását. A projekt összeállításakor egy futtatható (.exe) játékfájl jön létre ( Windows esetén ), és egy külön mappában - a játékadatok (beleértve az összes játékszintet és a dinamikusan kapcsolódó könyvtárakat).
A motor számos népszerű formátumot támogat. A modellek, hangok, textúrák, anyagok, szkriptek .unitypackage formátumba csomagolhatók, és átvihetők más fejlesztőknek, vagy feltölthetők ingyenes hozzáférésre. Ugyanezt a formátumot használják a belső Unity Asset Store-ban, ahol a fejlesztők ingyen és pénzért megoszthatják a játékok létrehozásához szükséges különféle elemeket. A Unity Asset Store használatához Unity fejlesztői fiókkal kell rendelkeznie.
Az UNet (egy könyvtár a többjátékos Unity játékokban való megvalósításához) a 2018.4-es verzió óta eltávolítva; multiplayerhez nincs kész megoldás. Használhatja a felhasználóbarát verziókezelési módszert is. Például Tortoise SVN, Git vagy Source Gear .
A Unity tartalmazza a Unity Asset Servert, a Unity alapú együttműködési fejlesztőeszközt, amely egy olyan kiegészítő, amely verziókezelést és számos más szerveroldali megoldást ad hozzá.
A játékmotorok általában sok olyan funkciót biztosítanak, amelyek lehetővé teszik, hogy különféle játékokban használják őket, beleértve a fizikai szimulációt, a normál térképeket, a dinamikus árnyékokat és egyebeket. Sok játékmotorral ellentétben a Unitynek két fő előnye van: a vizuális fejlesztőkörnyezet jelenléte és a platformok közötti támogatás [8] . Az első tényező nem csak a vizuális modellező eszközöket foglalja magában, hanem egy integrált környezetet , az összeállítási láncot is, amelynek célja a fejlesztők termelékenységének javítása, különösen a prototípus-készítés és a tesztelés szakaszaiban. A többplatformos támogatás keretében nem csak a telepítési helyek (telepítés személyi számítógépre, mobileszközre, konzolra stb.) biztosítottak, hanem a fejlesztői eszközök elérhetősége is (az integrált környezet Windows és Mac OS alatt is használható) [4] .
A harmadik előny a Unity moduláris komponensrendszere, amelyet játékobjektumok megalkotására használnak, ha az utóbbiak funkcionális elemek kombinálható csomagjai. Az öröklési mechanizmusokkal ellentétben az Unity objektumai funkcióblokkok kombinálásával jönnek létre , nem pedig az öröklődési fa csomópontjaiba helyezve őket. Ez a megközelítés megkönnyíti a prototípusok létrehozását, ami fontos a játékfejlesztésben [9] .
Hátrányként a vizuális szerkesztő korlátozását adják meg többkomponensű diagramokkal végzett munka során, amikor a vizuális munka bonyolult jelenetekben nehéz. A második hátrány a külső könyvtárakra mutató hivatkozások Unity támogatásának hiánya , amelyet a programozóknak maguknak kell beállítaniuk, és ez megnehezíti a csapatmunkát. Egy másik hátrány a példánysablonok ( angol prefabs ) használatához kapcsolódik. Ez az Unity koncepció egyrészt rugalmas megközelítést kínál az objektumok vizuális szerkesztéséhez, másrészt az ilyen sablonok szerkesztése nehézkes [9] . Ezenkívül a motor WebGL - verziójának architektúrájának sajátosságai miatt (a kód fordítása C#-ról C++-ra, majd JavaScriptre) számos megoldatlan probléma van a teljesítménnyel, a memóriafogyasztással és a mobileszközök teljesítményével kapcsolatban [10] [11 ] ] .
Játékok, alkalmazások és szimulációk százai íródnak a Unity-n [12] , a Unity-t mind a nagy fejlesztők (például a Blizzard [13] ), mind pedig az indie játékok létrehozásában használják . A Unity számítógépes játékai számos platformot és műfajt lefednek, tipikus példák ezekre [14] :
A Unity első verziója 2005-ben jelent meg, amikor a Worldwide Developers Conference -en bejelentették a játékmotort . A Unity kezdetben kizárólag Mac számítógépekre készült, augusztusban pedig megjelent egy frissítés, amely lehetővé tette, hogy Windows alatt is működjön. A következő verziók fokozatosan új platformokkal és telepítésekkel egészültek ki: többplatformos weblejátszó 2006-ban, iPhone 2008-ban, Android 2010-ben, és tovább az Xbox és Playstation játékkonzolok [4] .
Lehetőség van böngészőben futtatható alkalmazások létrehozására egy speciális Unity (Unity Web Player) beépülő modul segítségével , valamint a WebGL technológia megvalósításával. Korábban az Adobe Flash Player modulon belüli projektek megvalósításához volt kísérleti támogatás [15] , de később a Unity fejlesztőcsapata meghozta azt a nehéz döntést, hogy felhagy ezzel [16] .
2009 decemberében a Gamasutra a Unity-t a szerencsejáték-társaságok piacának egyik legjelentősebb szereplőjének nevezte [17] .
A Unity ingyenes verziójának vannak bizonyos korlátozásai, de lehetőség van játékok terjesztésére, feltéve, hogy a játékból származó éves bevétel nem haladja meg a 100 000 dollárt [18] .
Jogosítvány típus | Vállalati bevétel évente | Üdvözlő képernyő | Többjátékos funkciók | Beépített felhőtárhely | Sötét téma | Teljesítményjelentések | Prémium támogatás | Hozzáférés a forráskódhoz | Ár ( dollárban ) |
---|---|---|---|---|---|---|---|---|---|
Személyes | 100 000 dollárig | „Made With Unity” és opcionális egyéni animáció | 20 CCU | Alapértelmezett | Igen | Nem | Nem | Nem | Ingyenes |
Plusz | 200 000 dollárig | Egyedi animáció és/vagy „Made With Unity” | 50 CCU | Kiemelten fontos | Igen | Igen | Nem | Nem | 399 évente vagy 40 havi |
Pro | Nincs korlátozva | Egyedi animáció és/vagy „Made With Unity” | 200 CCU | Egyidejű | Igen | Igen | Igen | Nem | 1800 évente vagy 150 havonta |
Vállalkozás | Nincs korlátozva | Egyedi animáció és/vagy „Made With Unity” | Egyedi többjátékos | Dedikált források | Igen | Igen | Igen | Igen | 200 dollár havonta |
Játékmotorok | |||||||
---|---|---|---|---|---|---|---|
Grafikus | Ingyenes GLScene Horde3D Irrlict EMBEREVŐ ÓRIÁS OpenSceneGraph Szabadalmazott Outerra | ||||||
Fizikai | Ingyenes Box2D Golyó mókus newton ÓDA. Tokamak Szabadalmazott DMM Havok fizika PhysX | ||||||
Általános rendeltetésű |
| ||||||
Specializált |
| ||||||
A játékmotorok listája |