Bevezetés a Unity 3D-be
Az Unity 3D egy erőteljes játékfejlesztő motor. Ez több platformon keresztül lehetővé teszi játékok, mobil, webes, asztali és konzolos játékok, összesen mintegy 30 platform létrehozását. A Unity 3D számos izgalmas funkcióval rendelkezik, ezek közül néhányat megadunk:
- Költség: Az Unity 3D személyes verziója kezdőknek, diákoknak és hobbistáknak ingyenes. Az Unity Personal rendelkezik az Unity összes alapvető jellemzőjével. Emellett alapvető elemzéseket, felhőalapú összeállítást, hirdetéseket, többjátékos, alkalmazáson belüli vásárlásokat és platformokon átívelő szolgáltatásokat is tartalmaz. Ezen tulajdonságokon kívül a Unity personalnak is van néhány korlátozása. Két másik Unity Plus és Unity Pro verzió is elérhető komoly alkotók és szakemberek számára, havi 35 dolláros áron.
- Minden az egyben szerkesztő: Az egységet all in one szerkesztőben ismerik. A Unity szerkesztője számos művészbarát eszközzel rendelkezik a lenyűgöző élmények megtervezéséhez. Fejlett fejlesztői eszközökkel rendelkezik a játéklogika és a csúcskategóriás játékmenet megvalósításához. A Unity emellett lehetővé teszi 2D és 3D játékok készítését is. Ez magában foglalja a navigációs rendszeren alapuló AI útkereső eszközöket is. Kiváló beépített rendszerrel rendelkezik a figyelemfelkeltő felhasználói felületek létrehozásához. Box2D fizikai motorja lehetővé teszi számunkra, hogy reális mozgást, lendületet, erőt és játékmenetet hozzunk létre.
- Platformok: A Unity számos különböző platformot támogat, mint például Linux, IOS, Android, Windows stb. összesen közel 30 platform.
- Virtuális és kiterjesztett valóság: Az Unity támogatja a virtuális és a kibővített valóság fejlesztését. Ez a legszélesebb körben használt motor az XR fejlesztéséhez. A Microsoft HoloLens, a Stream VR / Vive, a Gear VR és a PlayStation VR támogatással rendelkezik az Unity Plus virtuális és kibővített valóságban.
- Multiplayer: Valós idejű, hálózatba kötött és többjátékos játékokhoz a Unity a legjobb megoldás. Szervereket kínál valós idejű együttműködéshez.
- Motor teljesítmény: A Unity motor teljesítménye rendkívüli. A többszálas számítási rendszer intenzív forgatókönyvekhez érkezik. A Unity motor fejlett profilkészítő eszközökkel rendelkezik, amelyek meghatározzák, hogy a játék CPU-hoz kötött-e vagy sem, és azt is megmondja, hogyan lehet jobb tapasztalatokkal optimalizálni.
- Unity Asset Store: Ez egy ingyenes és fizetett tartalom hatalmas katalógusa. Növelheti fejlesztési idejét számos beépített ingyenes modell és eszköz letöltésével. Még a Unity eszközboltban is vannak komplett projektek, ingyen és fizetve.
- Grafikus megjelenítés: A Unity rendelkezik az egyik legjobb grafikus megjelenítő rendszerrel. Lehetővé teszi olyan környezetek létrehozását, mint a világító nap, a neon táblák ragyogó fénye, a gyengén megvilágított éjfélek és az árnyékos alagutak. Elképesztő vizuális effektusokat produkál. Bár a Unity támogatja a többplatformos platformot, mégis megpróbálja lefedni az egyes platformok alacsony szintű grafikus API-jait a jobb eredmények és a jobb felhasználói élmény érdekében.
- Csapat együttműködés: Olyan funkciókkal rendelkezik, amelyek lehetővé teszik az együttműködést és az egyszerű munkafolyamatot. A Unity felhőtárhelye lehetővé teszi projektjeinek mentését, megosztását és szinkronizálását bárhol.
- Teljesítményjelentés: Az Unity teljesítményjelentési rendszere valós időben foglalkozik a kérdésekkel. A kiemelt prioritású kérdéseket nagyon hatékonyan oldják meg. Megtalálja az alkalmazás hibáit az eszközök és platformok között.
Unity Interfaces
Fedezzük fel a Unity szerkesztő konfigurálható felületeit. Csapolt ablakok alkotják, amelyeket igény szerint átrendezhet. Fedezzük fel az alapértelmezett ablakbeállításokat. Itt van a kép hogyan néz ki
Hierarchia ablak
A Hierarchia ablak a jelenet minden objektumát megjeleníti. Megmutatja, hogy az objektumok hogyan kapcsolódnak egymáshoz a jelenetben, tehát ez a két ablak összefügg. A hierarchia ablakban van egy legördülő lista, amelynek neve: Teremt. Nagyon könnyen létrehozhat egy üres objektumot, 3D objektumokat, 2D objektumokat, fény-, hang-, video-, részecskerendszer- és kameraobjektumokat. A hierarchia ablak az alábbiakban látható. A „Névtelen” a jelenet neve. Átnevezheti, ahogy akarja. A felirat nélküli (jelenet neve) jobb oldalán egy legördülő menü látható. Erre a legördülő menüre kattintva különböző lehetőségeket láthat Jelenet mentése és Új jelenet hozzáadása.
Jelenet ablak
A jelenetablakban hozhatja létre a jelenetet. Itt léphet kapcsolatba játékobjektumaival és modelljeivel. Átméretezheti, átalakíthatja és áthelyezheti a jelenetobjektumokat. Ez az az ablak, ahol elkezd dolgozni a Unity-vel. A jelenet nézete lehet 2D vagy 3D, a projekt beállításától függően. Itt van egy képernyőkép a jelenet ablakának kinézetéről:
A jelenetablakban egy másik fül látható Árnyékolt, itt kiválaszthatja, hogy milyen típusú árnyékolt vagy drótvázas legyen a nézet. Sok más lehetősége van, mint például Egyéb, Globális megvilágítás, Valós idejű GI, Baked GI és még sok más. Megtekintheti 2D vagy 3D formátumban a gomb melletti gombot Árnyékolt ledob. A következő a kapcsoló gomb a jelenet megvilágításához. Hasonlóan egy váltógomb a jelenet hangzásához. A következő egy legördülő lista az égbolt, a köd, az animált anyagok és a képeffektusok engedélyezéséhez.
Játékablak
A Játékablak az utolsó, közzétett játékot mutatja játékmódban. A játékban használt kamerákból renderelt. A játékablakban egy másik eszköztár látható, amint az a képernyőn látható:
Az 1. kijelző mutatja, hogy a kamera jelen van-e a játékban. Alapértelmezés szerint ez az érték 1. kijelző fő kamerához. Ha több kamerája van, és váltani szeretne, akkor a legördülő listából választhat. Mellette egy legördülő menü látható a képarányokhoz. Kiválaszthatja a céleszköz monitorának képernyője szerint. Ezután láthatja a Méret csúszka nagyításhoz. Görgessen jobbra, és vizsgálja meg a jelenet további részleteit lejátszási módban. A következő a gombra a Maximalizálás a Playen, rákattintáskor a játékablak maximális mérete lesz játék módban. Hang némítása kapcsolót a hang elnémításához / némításának feloldásához használják. Statisztika megjeleníti a játék hangjával és grafikájával kapcsolatos renderelési statisztikákat.
Projekt eszközei ablak
Amint a neve mutatja, az eszközök ablakban a projekt összes eszköze megtalálható, amelyet felhasználhat. Ha valami újat importál, az megjelenik a projekt eszköz ablakában. A projekt eszközablakának két része van, a bal és a jobb panel, az alábbi képernyőképen látható módon:
A bal oldali ablaktábla a projekt eszközeinek hierarchikus felépítését mutatja. Ha bármelyik mappára kattint, a jobb oldali panelen láthatók a részletek. Például az adott ábrán Előretek mappára kattint a bal panelen, így annak részletei a jobb panelen jelennek meg, mivel két játékobjektumot tartalmaz. A bal oldali panelen láthatja a Kedvencek szakasz, ahol nagyon gyakran húzhatja a használni kívánt elemeket, hogy elkerülje az időveszteséget a keresés során. Fölötte látható a Teremt legördülő menü, amely lehetővé teszi C # szkript, mappa, shader, GUI felület, jelenet, előregyártás, anyag és még sok más létrehozását.
Konzol ablak
A konzolablakban láthatja a hibákat, figyelmeztetéseket és üzeneteket. A váltógombokra kattintva állíthatja be őket. Ez lehetővé teszi az összes hiba, figyelmeztetés és üzenet törlését is. A hibákat egy bizonyos ideig szüneteltetheti. Itt láthatja a következő ábrán
A jobb felső sarokban található legördülő menüben lehetőségek vannak a Szerkesztőnapló és a Veremkövetés naplózására.
Ellenőr ablak
Az Ellenőr ablak a szerkesztő egyik legérdekesebb és leghasznosabb ablaka. Itt szerkesztheti a kiválasztott játékobjektum összes tulajdonságát. Minden játékobjektumnak megvan a maga típusa, így tulajdonságaik eltérőek lesznek, és az ellenőr ablaka változhat. Az eszközök, a szkriptek és a játékobjektumok tulajdonságai különbözőek. Láthatjuk a kocka tulajdonságait az ellenőr ablakban. Itt van a kép:
Átnevezheti a játékobjektumot, ha csak az előző névre kattint, és beír egy újat. Ezután látni fogja az átalakítás részt, ahol beállíthatja a kiválasztott játékobjektum helyzetét, forgatását és méretezését. Az utolsóban egy gomb neve látható Add Component, kattintson rá, hogy új komponenseket adjon a játékobjektumhoz, például ha szkriptet szeretne csatolni, akkor kattintson az összetevő hozzáadása elemre, és írja be a szkript nevét.
Eszköztár
Utolsó az eszköztár fül, sok hasznos funkcióval rendelkezik. Néhány alapvető eszközt tartalmaz a jelenet és az objektumok manipulálására. Középen találhatók a lejátszás, a szünet és a lépések vezérlésének gombjai. A következő két gomb az Unity felhőjét és a Unity fiókját mutatja. Íme az ábra, hogy néz ki:
Az egység kezdete
Kezdjünk el létrehozni egy új projektet a Unity-ben, mert itt az ideje játszani a tanultakkal. Kattintson duplán az Unity ikonra, és megjelenik a következő ablak:
Belép Projekt neve, válasszon munkahelyet Elhelyezkedés majd válassza ki a projekt típusát 2D vagy 3D. Kattintson Projekt létrehozása.
Alapértelmezés szerint egy cím nélküli jelenetet fog látni, amely egy fő kamerát és irányjelzőt tartalmaz a jelenetben. Kezdjük el létrehozni a környezetet.
Építési környezet
Először hozzon létre egy síkot a gombra kattintva Létrehozás -> 3D objektum majd válassza ki Repülőgép. Vagy alternatívaként létrehozhatja a gombra kattintva GameObject -> Játékobjektum majd válassza ki Repülőgép. Menjen a hierarchia ablakba, és kattintson a sík játékobjektumra. Most lépjen az ellenőr ablakhoz, és nevezze át a következőre: Talaj. Most állítsa be az átalakítási értékeket úgy, hogy ez a sík egyenes útnak nézzen ki. Csak méretezze X-et 6-ra, Z-t 50-re. Itt van a kép hogyan néz ki
Most töltsön le egy úttestet és alkalmazza a talajra. Hozzon létre egy mappa nevet textúraként. Húzza a letöltött út textúráját a Texture mappájába. Most válassza ki Talaj és húzza az út textúráját a jelenet nézetében. Itt van a kép hogyan néz ki
Ezt a textúrát töltöttem le
Miután a textúrát felvitte a földre, kattintson a Ground elemre, és állítsa be a csempézést az ellenőr ablakában. Így állítom be.
Most létrehozott egy útmodellt, alkossunk egységesen egy gömbmodellt.
Menj Létrehozás -> 3D objektum majd válassza ki Gömb, egy gömb objektumot fog látni a jelenet ablakában. Jelölje ki, és lépjen az ellenőr ablakba, hogy átnevezze Labda. Most állítsa be ennek megfelelően az átalakítási értékeket. Csak méretezze 5-re mindhárom tengely mentén, és helyezze át az út közepére. Így néz ki
Most hozzon létre egy kerítést vagy falat az út körül.
Menj Létrehozás -> 3D objektum majd válassza ki Kocka. Jelölje ki, és nevezze át erre: Fal1. Lépjen az ellenőr ablakához, és állítsa be az átalakítási értékeket úgy, hogy falnak nézzen ki az út körül. Így néz ki:
Lásd ezeket az átalakítási értékeket Fal1. Skála Y 6-ig és Z 500-ig. Ezután állítsa be úgy, hogy az út kanyarulataiban legyen.
Most keressen egy falszerkezetet, töltse le és másolja a Struktúra mappa az eszközökben. Húzza a fal textúráját a jelenet ablakának falára. Állítsa be a talajművelést úgy, hogy szép és sima legyen. A csempézést X-re 50-re, Y-t 1-re állítottam.5. A csempézés beállítása után ez így néz ki
Ezt a textúrát használtam a falhoz
Falat hoztunk létre az út egyik oldalára. Most ugyanezt tegye az út másik oldalán is. Ahelyett, hogy végigvinnénk az egész folyamatot, csak másolhatunk Fal1 és nevezze át Fal2.
Válassza a lehetőséget Fal1 a hierarchia ablakban, majd kattintson a jobb gombbal, majd válassza a lehetőséget Másolat választási lehetőség. Létrehoz egy másik játékobjektumot, amelynek mérete és átalakítási értéke azonos. Kattintson Fal1 (1) és nevezze át Fal2. Most állítsa be úgy a helyzetet, hogy az az út másik sarkába kerüljön.
Nézze meg a következő képet, milyen menőnek tűnik
A Wall2 pozíció értéke X és -29 között van.6 Y-tól 2-ig.6. és Z – 2.6.
Most hozzon létre egy anyagot a Labda. Nyissa meg a Projekt ablakot, és az egér jobb gombjával kattintson egy mappa létrehozására, majd válassza a lehetőséget Mappa. Nevezze el úgy Anyagok. Ismét jobb egérgombbal kattintson az egérre, és hozzon létre egy anyagot. Nevezze el piros labda. Az ellenőr ablakában válassza ki az anyag színét. Menj Fő térképek és válassza az Albedo színét vörösre. Növelje a fémes textúrát a sáv jobbra görgetésével. Húzza ezt az anyagot a Labda a helyszínnézetben. Így néz ki
Így néz ki az anyag:
Tehát elkészültünk a környezetünk fejlesztésével. Most itt az ideje egy kis kódolásnak. Ehhez létre kell hoznunk egy szkriptet.
Forgatókönyvírás az Unity-ben
Saját játékmenet-funkcióinak megvalósításához és a Unity által szkriptelési mechanizmusként biztosított játék viselkedésének szabályozásához. A játék kívánt kimenetéhez saját szkriptet írhat. Ezekkel a szkriptekkel kiválthatja a játék eseményeit, megváltoztathatja a komponens tulajdonságait, és válaszolhat a felhasználói inputokra. A Unity alapvetően két különböző programozási nyelvet támogat szkriptelés céljából, az egyik a C #, a másik pedig a JavaScript. Ezen a két nyelven kívül sok más .A NET nyelvek a Unity-vel is használhatók. A szkriptek viselkedéskomponensként ismertek a Unity-ben.
Script készítése
Kezdjük el létrehozni a Unity szkriptet. Ehhez lépjen az eszközök ablakba, és hozzon létre egy új nevű mappát Szkriptek (kihagyhatja az új mappák létrehozását minden új típusú eszközhöz, de ez a bevett gyakorlat a dolgok rendezettségének megőrzéséhez). Így néz ki most az eszközeim ablaka:
Most nyissa meg a Szkriptek mappába, kattintson a jobb gombbal, majd lépjen a következőre: Teremt és válassza ki C # forgatókönyv. Átnevezheti a szkriptet erre: Mozgalom. Ezt a forgatókönyvet azért hozzuk létre, hogy mozgassa és gurítsa a labdát az úton. A labda egyelőre mozdulatlan, nem csinál semmit, hozzunk létre benne valami mozgást.
Kattintson duplán arra a Movement szkriptre, amely megnyílik a Mono Develop alkalmazásban. Ha a szkript mono viselkedésű, akkor látni fog egy ilyen előre megírt kódot
a Rendszer használatával.Gyűjtemények; a Rendszer használatával.Gyűjtemények.Generikus; az UnityEngine használatával; public class MovementScript: MonoBehaviour // Használja ezt inicializáláshoz void Start () // A frissítést kockánként egyszer hívják meg void Update ()
Két funkció látható: Start () és Update ().
Rajt(): A Start függvény a változók és objektumok inicializálására szolgál. Csak egyszer hívják meg, ha a parancsfájl engedélyezve van, mielőtt bármilyen más frissítési függvény meghívást kezdeményezne.
Frissítés (): Ez egy mono viselkedési függvény, minden képkockában egyszer meghívják.
Ezen a kettőn kívül számos más mono viselkedési funkció létezik, például ébren (), FixUpdate (), lateUpdate () stb.
A labda mozgatásához először merev testté kell tenni (ideális szilárd test, amelyben a deformációt elhanyagolják). Válassza a lehetőséget Labda a hierarchia ablakban, és kattintson a gombra Add Component gombot az ellenőr ablakban. Írja be a merev testet és nyomja meg Belép. Merev test fog csatlakozni a Labda. Most lépjen a szkripthez, és hozzon létre egy privát változót Merev test. Most rendelje hozzá a labda merev testét ehhez a változóhoz, amelyet most létrehozott a szkriptben.
privát Rigidbody rb; rb = GetComponent();
Most írjon néhány kódot ennek a merev testnek a mozgására. Mi az ötlet? A labdának mozognia kell, amikor megnyomom a billentyűzet nyílbillentyűit. Előre kell mozognia, amikor a fel gombot megnyomják, hátra, amikor a le gombot megnyomják, és így tovább.
Tehát a billentyűzetről érkező bemenet, hogyan szerezzem meg ezt a bemenetet? Az Unity Input osztályának neve van GetAxis (), a tengelynévvel azonosított virtuális tengely értékét adja vissza. Hozzon létre két változót, egyet az x tengelyhez és egyet az y tengely beviteléhez. Így kell lennie
float moveHorizontal = Bemenet.GetAxis ("vízszintes");
Most hozzon létre egy Vector3 változót a mozgásértékek megszerzéséhez.
Vector3 mozgás = új Vector3 (moveHorizontal, 0.0f, moveVerticle);
Az első paraméter az x tengely, a második az y tengely, a harmadik a z tengely értéke. Mivel a labda nem mozog az y tengely irányában, rendeljen hozzá nullát. Végül adja hozzá ezt a mozgást a merev testhez, és szorozza meg a sebesség állandó számával, vagy hozzon létre egy másik változót a sebességhez. Lásd a teljes kódot alább
a Rendszer használatával.Gyűjtemények; a Rendszer használatával.Gyűjtemények.Generikus; az UnityEngine használatával; nyilvános osztály Mozgás: MonoBehaviour nyilvános úszó sebesség; privát Rigidbody rb; // Használja ezt inicializáláshoz void Start () rb = GetComponent(); // A Fix frissítést a keret rögzített száma után hívják meg. FixedUpdate () float moveHorizontal = Input.GetAxis ("vízszintes"); float moveVerticle = Bemenet.GetAxis ("vízszintes"); Vector3 mozgás = new Vector3 (-1 * moveHorizontal, 0.0f, -1 * moveVerticle); rb.AddForce (mozgás * sebesség);
Mivel a sebesség nyilvános változó, így értéket rendelhet az ellenőr ablakban. Csatolja ezt a szkriptet a labdához úgy, hogy az ellenőr ablakba húzza, vagy megnyomja Add Component gomb. Nyomja meg a Lejátszás gombot és tesztelje, hogy a kódolása: mozog-e vagy sem.
Kamera beállítása
Utolsó dolog, amit észrevesz, amikor megnyomja az előre gombot, és a labda mozogni kezd, kimegy a kamerából, mivel a kamera áll. Mit tehetünk? Nekünk is mozgatnunk kellene a kamerát? Igen, ez a legegyszerűbb dolog. Tedd a kamerát a labda gyermekévé úgy, hogy a fő kamerát a labdához húzd.
Következtetés
Ez egy alapvető bevezető oktatóanyag volt, amelyben számos érdekes funkciót, a környezet felépítését és a szkriptek készítését tanulta meg a Unity-ben. Ne habozzon, kezdje meg már az első játék létrehozását a Unity-vel, és élvezze!