Feb 122015
 

Zeiss möchte gern, dass die Apps für eine VR One das eigene Menu nutzen. Dort gibt es einen Recenter – Button und einen Media-Launcher um zwischen den Apps zu wechseln.

Wie erstellt man nun son ein Menü mit Launcher und Recenter? Eigentlich ist hier alles beschrieben:

What else do you provide?

Included in the VR One Unity SDK is a simple Menu-prefab, which Zeiss recommends to be integrated into any application. The menu provides two basic functionality:

  1. View recenter, to allow the user to reposition his/her head and have the view adjusted to it.
  2. Jump to VR One Media Launcher button.

By allowing the user to navigate between VR apps directly through head-tracking accessible buttons, the VR One aims provide a consistent virtual reality experience across all the supported apps.

In the demo scene you can see a basic menu set up with a recenter icon and the jump to launcher icon. You can create your own menu by creating an empty game object and adding the script component Menu.cs to it. Each menu is naturally consisted of several buttons. The prefab also allows you to define the layout of your menu.

It is important to note that you need to define a hot spot object that triggers the menu. Create such an object and add SelectableObject.cs to it. Next, drag and drop the menu gameobject into „Menu Prefab“. You can set the menu to be active on start, define a selection time and a progress bar.

Alles klar? Hier noch einmal meine Variante, man kann sich aber auch die Demo angucken und es sich dort abschauen.

Nachdem hinzufügen des SDK zu Unity (ausführlich auch hier beschrieben : https://bitbucket.org/vrone/unity3d ) erstellt man ein leeres GameObjekt für das Menü. Damit der Menüinhalt schön zusammen ist.

Darin erstellt man ein weiteres , leeres GameObjekt, im Beispiel MainMenu

Bildschirmfoto 2015-02-12 um 19.58.27

 

Das MainMenu bekommt das Menu.cs Skript aus dem SDK VROneCOntrols/Scripts/Menus/Menu.cs. Einfach drauf ziehen, sieht dann so aus:

Bildschirmfoto 2015-02-12 um 20.00.41

Bei Rows können wir einstellen, wie viele Zeilen das Menü haben soll, wir nehmen eine Reihe.

Bildschirmfoto 2015-02-12 um 20.01.19

Mit 2 Icons, eines für Recenter, eines für den Media Launcher, aber das kommt später.

Bildschirmfoto 2015-02-12 um 20.11.31

Dann benötigen wir 2 weitere leere GameObjekte, für Recenter und Media Launcher.

Bildschirmfoto 2015-02-12 um 20.13.18

Recenter bekommt das Script CursorAttachment.cs aus VROneControls/Scripts/ und benötigt dann ein Objekt für Recenter Prefab.

Bildschirmfoto 2015-02-12 um 20.24.47

Dort das Prefab „Recenter“ einfügen, liegt unter: VROneControl/Prefabs. Dann sollte es so aussehen:

Bildschirmfoto 2015-02-12 um 20.27.17

Der MediaLauncher bekommt nur das Script OpenUrl.cs aus VROneControls/Scripts/OpenUrl.cs

Damit kann nun das Menü gefüllt werden!

Das MainMenu wieder im Inspector öffnen und im Script alles aufklappen. Zuerst wir Recenter eingerichtet:

Unter Element 0 folgende Einstellungen vornehmen und Objekte hinzufügen:

  • Mat: Bekommt die Textur recenter, aus VROneCOntrols/Textures
  • IsCLoseButton anhaken
  • Callback Component ist unser Recenter Gameobjekt (einfach aus der Hierarchy in das leere Feld (none GameObjekt) ziehen
  • Name ist recenter
  • Tooltip Size ist 2, mit „Center“ und „View“
  • Second State bleibt so
  • Beide Haken für IOS und Android setzen.

Fertig!

Bildschirmfoto 2015-02-12 um 20.37.12

Und ausprobieren!

Aber dafür benötigen wir noch eine Selection!

Wir erstellen eine Sphere und schicken die ins Nirvana (z= 100 oder so) Es ist egal wo die ist, Hauptsache, sie ist da! Sie bekommt das Script: SelectableObjekt.cs aus dem Script Ordner. Einfach drauf ziehen. Auf die leere Variable Menu Prefab ziehen wir das MainMenu und es soll aktiv beim Start sein.

Jetzt ausprobieren!

Entweder auf der VR One oder der Kamera Tastatursteuerung verpassen, siehe ( Link ).

 

Bildschirmfoto 2015-02-12 um 20.54.06

Da isses 🙂

Die Einstellungen für den MediaLauncher bitte aus dem Bild entnehmen. Falls es dann noch Fragen gibt, einfach fragen!

MediaLauncher:

Launcher