VR-Support aktivieren
Öffne ein neues Projekt in Unity und begebe dich direkt in der Menüleiste auf File > Build Settings, wähle PC als Plattform und klicke danach auf den Button Player Settings. Im Inspector öffnen sich nun die Einstellung und hier kannst du unter der Rubrik XR Settings. Hier aktivierst du „Virtual Reality Supported“.
Unity Virtual Reality Support aktivieren
Oculus Utilities
Im nächsten Schritt lädst du dir die Oculus Utilities für Unity herunter. Diese findest du unter: https://developer.oculus.com/downloads/package/oculus-utilities-for-unity-5/ und entpackst das heruntergeladene Verzeichnis. Im Verzeichnis findest du ein Unitypackage mit dem Namen „OculusUtilities“. Das Package lässt sich per Drag and Drop direkt in Assets-Bereich deines Unity Projekts ziehen und dadurch importieren.
Beispiele
Unter der Rubrik Supporting Packages können Beispielprojekte für Unity heruntergeladen werden. Das Oculus Sample Framework for Unity 5 Project ist insgesamt ca. 500 MB groß und kann ebenfalls direkt in Unity importiert werden.
Eigene Szene
Um nun dein eigenes Level für die Oculus Rift zu erstellen benötigst du eine Szene mit einem OVRPlayerController. Diesen findest du unter OVR > Prefabs > OVRPlayerController. Ziehe das Prefab auf die Hierarchie deiner Szene und erstelle dir zusätzlich noch eine 3D Objekt wie beispielsweise eine Plane über einen Rechtsklick in der Hierarchie und 3D Object > Plane.
Das OVRPlayerController game object wird direkt auf dieser Plane platziert, da die jeweiligen Collider aufeinander treffen. Starte nun über den Play-Button in Unity deine Szene und schon siehst du dein Projekt direkt in deiner Oculus Rift.
Objekte mit Controller greifen
Virtuelle Hände anzeigen
Nachdem es dir nun möglich ist, dass du deine Szene direkt auf der Rift betrachten kannst ist es darüber hinaus hilfreich in der Szene virtuelle Hände zu haben, die die Gesten des Nutzers widerspiegeln. Dies kannst du realisieren in dem du dich in den Ordner OvrAvatar > Content > Prefabs begibst und das Prefab mit dem Namen „LocalAvatar“ zu deiner Hierarchie hinzufügst.
Wichtig hierbei, das Prefab muss als Kind-Objekt des TrackingSpace zugewiesen werden. Solltest du in deinem Assets-Ordner dieses Prefab nicht finden, dann überprüfe nochmal ob du das Oculus Sample Framework for Unity 5 Project in dein Projekt importiert hast.
Unity VR LocalAvatar
Objekte greifen
Im nächsten Schritt werden wir Objekte greifbar machen. Selektiere dazu ein beliebiges 3D Objekt in deiner Szene und füge zu diesem Objekt folgende Einstellungen hinzu:
- Rigidbody
- Use Gravity – deaktiviert
- Skript hinzufügen -> OVR Grabbable
Damit wird das Objekt nicht von der Erdanziehung beeinträchtigt und es kann beliebig im Raum zu Testzwecken platziert werden. Später können diese Einstellung jederzeit geändert werden. Danach müssen die virtuellen Hände folgendermaßen konfiguriert werden:
- LeftHandAnchor / RightHandAnchor
- Skript hinzufügen -> OVR Grabber
- Sphere Collider
- Radius 0.05
- isTrigger – aktivieren
- Rigidbody: Use Gravity false
Tasten-Input programmieren
Damit du in deiner Unity Szene auf die Tasteneingabe der Rift-Controller zugreifen kannst, ist die Verwendung von OVRInput notwendig. OVRInput ist Teil von OVR und das Skript ist unter OVR > Scripts > OVRInput.cs zu finden. Dieses Skript muss in deinem Assets-Ordner importiert sein um über ein eigenes Skript auf die Tasteneingabe zuzugreifen. Folgende Schritte sind nun notwendig:
- Neues Skript erstellen mit beliebigem Namen
- In der Update Methode des Skripts eine Bedingungsabfrage starte um gewünschte Taste zu überprüfen
Alle Input-Befehle
Alle Informationen zu den Abfragen findest du hier in der Oculus Dokumentation unter OVRInput.
- OVRInput.Get = Gibt dauerhaft wahr zurück, also auch wenn der Button gedrückt wird
- OVRInput.GetDown = Gibt nur wahr zurück, wenn der Button losgelassen wird
- OVRInput.GetUp = Gibt nur wahr zurück, wenn der Button gedrückt wurde
Hilfreich kann auch die Szene „InputTester“ aus dem Ordner SampleScenes > Input > Input Tester > Input Tester sein. Innerhalb dieser Szene können die Buttons der jeweiligen Controller gedrückt werden und auf dem Bildschirm erhält man eine Rückmeldung mit dem Namen des Buttons.
Button vs. RawButton
Möchtest du bei einem Controller einen bestimmten Button verwenden, wie beispielsweise den „A“-Button, dann ist es wichtig, dass du den Befehl OVRInput.Get(OVRInput.RawButton.A); verwendest und nicht OVRInput.Get(OVRInput.Button.One); Denn Button.One ist sowohl der „A“-Button des rechten Controllers, als auch der „X“-Button des linken Controllers.
Virtual Reality ToolKit (VRTK)
Um schneller zu einem Ergebnis während der Entwicklung mit der Oculus Rift zu kommen, kann das VRTK Toolkit hilfreich sein.
Installation
Das VRTK kann kostenfrei im Unity Asset Store heruntergeladen werden.