Mi az a Unity 3D? Cross platform játékmotor + szerkesztő Támogatott platformok Desktop: Windows, Linux, OSX Böngésző: Unity plugin, Google Native Client, Flash Mobil: ios, Android Konzol: Xbox 360, PS3, Nintendo Wii További várható platformok Windows Phone 8, Blackberry OS
Mik készültek vele?
Mik készültek vele?
Mik készültek vele?
Mik készültek vele?
Mik készültek vele?
Mik készültek vele?
Mik készültek vele?
Mennyibe kerül? Az alap verzió ingyenes Fordítás desktopra, web playerre, Google Native Clientre, Android-ra, ios-re Nem tartalmaz néhány fejlettebb funkciót (ezekről később) Fizetnünk kell, ha: Konzolra fejlesztenénk -? $ / játék Contact sales... Egyéb platformra fejlesztenénk, vagy Pro-beli funkciókat használnánk 1500 $ / fejlesztő
Miért használnánk? Mert egy multiplatform 3D játékmotort összerakni Sok idő & pénz Játékot vagy játékmotort fejlesztenél? Aktív fejlesztői közösség Jó dokumentáció Számos példaprojekt, könyv, szöveges ill. video tutorial található szerte a neten Asset store!
Asset Store Általában egy játékhoz sokféle tudás kell Programozó, animátor, 2D és 3D grafikus, hangmérnök, zeneszerző, stb. Könnyen lehet, hogy valamelyik feladatra nincs meg a szükséges tudásunk / emberünk Nézzünk szét az Asset Store-ban! Ingyenes és fizetős erőforrások játékfejlesztőknek 3d modellek, animációk, hangok, zenék, textúrák, scriptek, Unity plugin-ek, részecskerendszerek, Mi is tölthetünk fel tartalmat -> $$$
Az interfész bemutatása
Árnyékok Integrált Beast lightmapping rendszer Az ingyenes verzióban is használható, de A Light Probe-ok csak a Pro-ban elérhetőek A realtime hard ill. soft shadow funkció csak a Pro verzióban működik Az ingyenes verzióban csak egyszerűbb realtime árnyékokat tudunk használni Pl. Blob shadow projektorral
Erőforrások importálása Mik az erőforrások (asset-ek)? Textúrák, 3d modellek, animációk, hangok, scriptek, stb. Általában külső alkalmazással készítjük őket Photoshop, Gimp, Maya, Max, Importáláshoz egyszerűen be kell másolnunk a fileokat a projekt könyvtárába A legtöbb ismert formátumhoz van importer Platformonként módosíthatjuk az importálás beállításait Pl. Mobilokon alacsonyabb felbontású textúrákat használunk mint desktop rendszereken.
Scriptek írása Kódunk a Mono framework segítségével fut valamennyi platformon A Mono szükséges elemei a játékunkba épülnek, a felhasználónak nem kell azt külön telepíteni Milyen nyelveket használhatunk? C#, JavaScript, Boo Ezeket akár keverhetjük is fájlonként Milyen fejlesztőkörnyezetben dolgozhatunk? A Unity telepítésével megkapjuk a MonoDevelop némileg módosított változatát (pl. Debugging support, fejlettebb code completion JavaScript-hez, stb.) De tetszőleges IDE-t használhatunk NotePad++, VisualStudio,
Egy C# script felépítése Minden script komponens egy osztály, ami a MonoBehaviour osztályból származik Hasznos örökölt mezők transform, enabled, tag, name, renderer, Hasznos örökölt metódusok Destroy(): GameObject vagy component megsemmisítése GetComponent(): Komponens keresése típus alapján a szülő GameObject-en GetComponentInChildren(): Ugyanaz, csak a gyerek GameObject-ekben keres
Input kezelés Az Input osztály metódusain keresztül Egér, billentyűzet, gamepad, joystick, érintőképernyő kezelés Egyszerre több gamepad / joystick és multitouch támogatása Input.GetKey() Egy bizonyos gombra figyel, bedrótozva Pl. Input.GetKey(KeyCode.B); Input.GetButton() Egy absztrakt gombra figyel, amit a játékos átkonfigurálhat a beállításokban A megfeleltetéseket az InputManager-ben adhatjuk meg Pl. Fire1 -> egér bal gomb Ezt javasolt használni a.getkey()-el szemben Input.GetAxis() Egy virtuális tengely menti -1 1 közti float értéket kapunk vissza Pl. Gamepad analóg kar X és Y tengely Az InputManager-ben szabályozható az érzékenység és egyéb paraméterek Demo, irányítsuk a karaktert!
Animáció Mecanim a Unity 4.0-tól bevezetett új animációs rendszer A korábbi legacy animációs rendszer továbbra is használható, de nem javasolt már új projektekhez A Mecanim előnyei Nagyban megkönnyíti humanoid karakterek animálását Képes a retargeting -re, vagyis egy bizonyos karakterhez készült animáció más arányokkal rendelkező karakterre való automatikus átszabására Egyszerűbben, egy grafikus szerkesztő segítségével lehet definiálni az állapotgépet ami leírja az animációkat menedzselő logikát A korábbi verziókban ezt kódban, nehezebben kezelhetően kellett megoldani
Mecanim állapotgép Demo!
Mi maradt ki? Mesterséges intelligencia Útvonaltervezés (Recast) Multiplayer hálózaton keresztül Részecskerendszer (Shuriken) Substance rendszer GUI kezelés és még sok más
Kérdések?