Ebben a leírásban olvashatsz részletesen arról, hogy hogyan építs fel VR Unity játékot, tölts be és futtass egy egyszerű Unity3D alkalmazást Oculus Rift vagy Samsung Gear VR eszközökön.
A dokumentáció célja, hogy bevezetésül szolgáljon azon fejlesztők számára, akik még újak a VR fejlesztésben és a Unity-ben. Miután az alapvető eszközöket beállítottuk, az alkotási folyamat pár órát fog igényelni. A végén lesz egy mobil applikációd, amelyet Oculus Rift vagy Gear VR-ral tudsz majd játszani, így nyűgözheted le a szeretteid és barátaid.
A Unity-s Roll-a-ball nevű játékot fogjuk módosítani, amelyhez VR képességet fogunk adni. A játékot vezérelhetjük majd billentyűzetről vagy Samsung EI-GP20 kontrollerről.
VR Unity alapok 1. Amire szükség lesz:
- Oculus Rift vagy Gear VR kompatibilis Samsung telefonnal
- Samsung EI-GP20 kontroller (szükséges mobilhoz, opcionális asztali géphez)
- PC Windows 7/8/10-zel vagy Mac OSX 10-zel
- Unity 4
A fejlesztéshez szükség lesz az SDK leírásása is. A releváns Oculus SDK dokumentációja itt megtalálható:
https://developer.oculus.com/documentation/
Telepítés és előkészület:
1. Telepítsük a megfelelő Oculus SDK és állítsuk be
Asztal gép: Töltsük le az Oculus PC SDK and Unity Integration-t a https://developer.oculus.com/downloads/#sdk=pc címről. Állítsuk a “Oculus Rift Getting Started Guide” alapján. Siker esetén le kell tudni futnia a leírásban szereplő demónak.
Mobil: Töltsük le a Oculus Mobile SDK-t a https://developer.oculus.com/downloads/#sdk=mobile címről. Állítsuk a Device and Environment Setup Guide alapján. Siker esetén a gépnek már kommunikálni kell tudni a Samsung telefonnak USB-n keresztül. Ahhoz, hogy ezt ellenőrizzük, kérjük le a eszköz ID-t a telefonról USB-n át és küldjünk ki egy “adb devices” utasítást a parancssorból. Ha a kommunikáció sikeres, a telefonnak válaszként az eszköz ID-t kéne adnia. Erre az azonosítóra később még szükség lesz, így érdemes felírni.
2. VR Unity telepítése
Ellenőrizzük a kompatibilitást ezen az oldalon: https://developer.oculus.com/documentation/unity/latest/concepts/unity-req/ majd töltsük le a megfelelő verziót: Unity dokumentáció A Unity részletes dokumentációval szolgál arra, hogy bevezesse a felhasználókat a fejlesztőkörnyezetbe. Érdemes áttanulmányozni ezeket a leírásokat, hogy megismerkedjünk az olyan koncepciókkal mint az Editor, GameObjects, prefab, project, vagy scene.
3. Alapozás a Unity Roll-a-ball játékával

VR unity Roll-a-ball
A Unity számos oktatóvideóval szolgál, amely átvezet az egyszerű játékok készítésének folyamatán. Az első ilyen videó bemutatja a Roll-a-ball nevű játék elkészítését, amelyben billentyűzettel vagy kontrollerrel vezérelhetünk egy labdát a pályán és azzal véve fel különböző tokeneket. A leírást itt lehet elérni: https://unity3d.com/learn/tutorials/s/roll-ball-tutorial
A fejlesztési folyamatot nyolc rövid videó mutatja be, amelyek 5-15 perc hosszúságúak. Néhány óra alatt elkészíthető a játék. Az utolsó videó bemutatja, hogy hogyan publikálhatjuk a játékot ahhoz, hogy webböngészőben is lehessen vele játszani. Ezt a lépést ki lehet hagyni, mivel ebben a leírásban mi PC/Mac és Android vonalra fejlesztünk.
Az asset-ekre, mappákra a Unity leírásban szereplő névvel fogunk hivatkozni, így könnyebb lesz követni a példákat.
4. Duplikáljuk a Roll-a-ball projektet
Miután elkészítettük a Roll-a-ball játékot, érdemes ezt duplikálni, hogy tovább lehessen fejleszteni VR játékká. Ha esetleg valamit elrontunk, az eredetiből így könnyen helyre tudjuk majd hozni.
A duplikáláshoz annyit kell tennünk, hogy a Unity projekt könyvtárában készítünk egy másolatot a játékról, majd átnevezzük azt például “Roll-a-ball-VR” nevűre.
5. Projekt indítása a scene előkészítése
- Indítsuk el a Unity projektet: File/Open Project és válasszuk ki a Roll-a-ball-VR projektet a listából
- Project fülön nyissuk meg az Assets/Scenes menüt és válasszuk a MiniGame opciót
- Nyomjunk F2-t és nevezzük át “VRMiniGame”-re
- Nyissuk meg a VRMiniGame scene-t
Roll-a-ball módosítása VR Unity-hoz
1. Oculus Unity Integration Package importálása
- Unity-ben válasszuk ki az Assets/Import Package/Custom Package opciót
- PC SDK: Nyissuk meg az OculusUnityIntegration mappát és válasszuk ki a OculusUnityIntegration.unitypackage opciót, majd Open
- Mobile SD: Nyissuk meg az UnityIntegration mappát a VrUnity-ben és válasszuk ki a UnityIntegration.unityPackage opciót, majd Open
- Megnyílt a Unity Import Package párbeszédablaka, ahol listába szedve láthatjuk a csomag asset-jeit. Válasszuk ki az összeset és Import
További integrálással kapcsolat dokumentációkat itt találhtjuk meg: https://developer.oculus.com/documentation/unity/latest/concepts/unity-integration-overview/#unity-integration-integration
2. Main Camera cseréje OVRCameraRig-re
Továbbiakban ki fogjuk cserélni a Roll-a-ball Main Camera objektumát OVRCameraRig-re, amely egy Oculus VR kamera. A OVRCameraRig két különböző sztereóképet renderel kis torzítással.
A Main Camera követi a játékos labdáját, de úgy fogjuk módosítani az egész játékteret nézze egy fix pozícióból, így a játékos bármilyen szögből tud majd nézelődni. Ahelyett, hogy törölnénk a Main Camera-t, csak tegyük inaktívvá a scene-ben. Válasszuk ki a Main Camera-t a Hierarchy nézetben és a jelölőnégyzetből szedjük ki a pipát az Inspector nézet bal felső részében.

VR unity Main Camera
Megjegyzés: Egyszerre csak egy kamera lehet aktív egy Unity scene-ben.
Project nézetben nyissuk meg az OVR mappát és válasszuk kia Prefabs könyvtárat. Válasszuk ki az OVRCameraRig-et és húzzuk be a Hierarchy nézetbe, hogy betöltsük.
3. Emeljük az OVRCameraRig-et a játéktér fölé
Válasszuk ki az OVRCameraRig-et a Hierarchy nézetben és állítsuk az OVRCameraRig Transform-nak a Position mezőit erre: X = 0; Y = 10; Z = -15
4. Forgassuk OVRCameraRig előrefelé a jobb látványért
Állítsuk az OVRCameraRig Transform-nak a Rotation mezőit erre: X = 35; Y = 0; Z = 0
Lépjünk be játékmódba a Play gomb megnyomásával. A Game nézet két különböző, torzított képet renderelni az alábbi képekhez hasonlóan. Ha PC SDK-t használunk, egy egészségügyi figyelmeztetés fog megjelenni, de ezt bármely gomb megnyomásával átléphetjük.

VR unity Camera
5. Mentsük el a scene-t és a projektet build-elés előtt.
6. Írjuk alá az alkalmazást (csak mobil esetén).
Ahhoz, hogy hozzáférjünk a Samsung telefon VR képességeihez, alá kell írnunk a programot egy Oculus Signature File (osig)-gal. Ha a korábbiakban felírtuk a device ID-t, akkor használhatjuk azt az osig fájl igényléséhez. Egy eszközhöz csak egy osig-ra lesz szükségünk.
A következő linken szerezhetünk osig fájlot: https://dashboard.oculus.com/tools/osig-generator/
Miután beszereztük az osig fájlot, másoljuk be a Unity projekt mappába a /Roll-a-ball-VR/Assets/Plugins/Android/assets -be.
Az alkalmazások aláírásáról részletesebben itt olvashatunk: https://developer.oculus.com/documentation/mobilesdk/latest/concepts/mobile-submission-sig-file/
Build és játék
Build és indítás
Ha számítógépre fejlesztünk, akkor indítható fájlra lesz szükségünk, amelyet PC-n vagy Mac-en futtathatunk. Amennyiben mobilra készítjük el a programunkat, akkor egy APK fájlot kell készítenünk és betöltenünk a telefonon, majd csatlakoztatnunk kell a Gear VR-t a játék indításához. A build lépésekről részletesebben itt olvashatunk: https://developer.oculus.com/documentation/unity/latest/concepts/unity-integration-build/#unity-integration-build
A játék
Indítsuk el és próbáljuk ki! Billentyűzet vagy Samsung kontroller is használható ahhoz, hogy felszedjük az objektumokat.
Megjegyzés: A GUIText, amit a Roll-a-ball leírás alapján készítettük nem működik OVRCameraRig kisebb módosítások nélkül, így nem fogjuk látni a számlálót vagy azt hogy “You win!” miután mindent felszedtünk.
Játék indítása Gear VR-ral
A Samung indulóképernyőjén az Apps kiválasztása után látnunk kell egy Roll-a-ball-VR alkalmazást a többi mellett. Innen közvetlenül is elindíthatjuk, majd ha jelez, csatlakoztassuk a Gear VR-t. Ez nem lesz látható Oculus Home-ból.
Forrás: Oculus Developer Documentation
Skeldar