Il progetto che ho creato e' di tipo Android. Nel Player Settings del progetto sotto XR Settings deve essere spuntato il supporto alla realta' virtuale e si aggiunge DayDream tra gli SDK. Sempre nel Player Settings si deve impostare in Other Settings un Minimum Level API a livello 24
Sicilia con Etna |
Per prima cosa si crea il modello digitale.
L'immagine deve essere a scala di grigi, in cui il livello di grigio indica la quota sul livello del mare (nero equivale a livello piu' basso, spesso il livello del mare, il bianco e' la quota piu' alta)
Si crea un oggetto Terrain da GameObject/3D/Terrain con dimensioni pari a quelle del modello DEM
Si trascina l'immagine negli assets del progetto e si prende il file HeightmapfromTexture. Dalle proprieta' dell'immagine (a destra Advanced si deve spuntare Read/Write and Apply)
L'editor delle versioni moderne di Unity (Unity 3d 2017.2) non permettono di editare direttamente file JavaScript. Si copia quindi lo script in un editor e si aggiungono le seguenti linee (dove si dichiarano le variabili x ed y)
var mapColors = heightmap.GetPixels();
var map = new Color[w2 * w2];
var y = 0.0;
var x = 0.0;
si salva il file e lo si trascina negli assets del progetto.
Si selezione negli assets l'immagine DEM importata e si clicca sul menu' in alto Terrain/HeightMapFromTexture
Per settare il livello di amplificazione delle quote si cambia il valore di Terrain Height nell'inspector
Il modello usato e' poco dettagliato 2048x2048 pixels |
Una volta importato e settato il modello digitale si deve aggiungere il supporto DayDream a Unity.
Una volta scaricato il package Daydream per Unity e lo aggiunge al progetto con il menu Assets/Import Package/Custom/GoogleVRforUnity.unitypackage.
- Si aggiunge quindi alla Hierarchy il modulo GvrEditorEmulator
- Si crea quindi un GameObject (dal menu' in alto), Gameobject/Create Empty e si rinomina come Player
- Si trascina la camera e si inserisce nell'albero sotto l'oggetto Player
- Si aggiungono GvrControllerMain e GvrEventSystem
- Se il progetto include una canvas deve essere aggiunto GvrPointerGraphicsRaycaster da Add Component
- Si aggiunge GvrPointerPhysicsRaycaster alla Camera da Add component
- Si aggiunge GvrControllerPointer agganciandolo al Player