Esercizio - Creare posizionamenti intelligenti di oggetti con risolutori
I risolutori sono uno dei componenti di Mixed Reality Toolkit (MRTK). Verranno esaminati due tipi di risolutori e le rispettive funzionalità.
Posizione dei risolutori in MRTK
I risolutori di MRTK si trovano nella cartella MRTK SDK. Per visualizzare i suggerimenti disponibili nel progetto, nella finestra Progetto passare a Pacchetti>Manipolazione spaziale MRTK>Suggerimenti.
Risolutore indicatore direzionale
Usare il risolutore Indicatore direzionale per indirizzare l'utente verso gli oggetti. In tal caso, eseguire la procedura seguente:
Nella finestra Project passare alla cartella Assets>MRTK.Tutorials.GettingStarted>Prefabs. Trascinare il prefab Chevron nella finestra Gerarchia e impostare la Posizione di trasformazione su X = 0, Y = 1.5, Z = 2 per posizionarlo vicino all'oggetto RoverExplorer.
Rinominare l'oggetto Chevron appena aggiunto in Indicator. Nella finestra Inspector selezionare quindi Add Component per aggiungere DirectionalIndicator.
Configurare i componenti DirectionalIndicator e SolverHandler nel modo seguente:
a. Verificare che per Tracked Target Type del componente SolverHandler sia impostato il valore Head.
b. Assegnare RoverExplorer a Directional Target del componente DirectionalIndicator trascinandolo da Hierarchy sul campo None (Transform).
c. Modifica il valore di View Offset impostandolo su 0.2.
Per passare alla modalità Game, premere Play. Tenere premuto il pulsante destro del mouse mentre si sposta il mouse verso sinistra o verso destra per ruotare la direzione dello sguardo.
Si noti che quando si allontana lo sguardo dall'oggetto RoverExplorer, viene visualizzato l'oggetto Indicator che punta verso l'oggetto RoverExplorer.
Risolutore Tap To Place
Usare il risolutore Tap To Place per riposizionare gli oggetti. In tal caso, eseguire la procedura seguente:
Nella finestra Hierarchy selezionare l'oggetto RoverExplorer>RoverAssembly. In Controllo usare Aggiungi componente per aggiungere il componente Tocca per posizionare. Configurare il componente come indicato di seguito:
a. Verificare che per Tracked Target Type del componente SolverHandler sia impostato il valore Head.
b. Deselezionare Usa offset normale superficie predefinita e assicurarsi che Offset normale superficie sia impostato su 0.
c. Selezionare la casella di controllo Keep Orientation Vertical.
Usare quindi Aggiungi componente per aggiungere il componente Interagibile con stato. Nella finestra Controllo individuare l'evento Al clic (). Selezionare l'icona + per aggiungere un nuovo evento. Configura l'evento come indicato di seguito:
a. Assegnare l'oggetto RoverAssembly come listener per l'evento Al clic () trascinandolo da Gerarchia sul campo Nessuno (Oggetto).
b. Dall'elenco a discesa Nessuna funzione, selezionare TapToPlace>StartPlacement() per chiamare questo metodo quando viene attivato l'evento.
Con l'oggetto RoverAssembly ancora selezionato nella finestra Hierarchy, nella finestra Inspector individuare l'evento On Placing Started (). Selezionare l'icona + per aggiungere un nuovo evento.
Configura l'evento come indicato di seguito:
a. Assegnare l'oggetto RoverAssembly come listener per l'evento On Placing Started () trascinandolo da Hierarchy sul campo None (Object).
b. Dall'elenco a discesa No Function selezionare TapToPlace>float SurfaceNormalOffset per aggiornare il valore della proprietà SurfaceNormalOffset quando viene attivato l'evento.
c. Verificare che l'argomento sia impostato su 0.
In Hierarchy fare clic con il pulsante destro del mouse su un punto vuoto. Scegliere 3D Object>Cube per creare un oggetto temporaneo che rappresenta il terreno e configurare il componente Transform come segue:
- Posizione: X = 0, Y = 0.15, Z = 6
- Rotazione: X = 0, Y = 0, Z = 0
- Scale (Scala): X = 10, Y = 0,2, Z = 10
Per passare alla modalità Game, premere Play. Quindi premere e tenere premuto il pulsante destro del mouse mentre si sposta il mouse verso il basso, fino a quando lo sguardo raggiunge l'oggetto RoverAssembly.
Tenere premuta la barra spaziatrice e fare clic sul pulsante sinistro del mouse per simulare il tocco e avviare il processo tap-to-place.
Tenere premuto il pulsante destro del mouse mentre si sposta il mouse verso sinistra o verso destra per ruotare la direzione dello sguardo. Quando si è soddisfatti del posizionamento, tenere premuta la barra spaziatrice e fare clic sul pulsante sinistro del mouse per simulare il tocco finale.
Dopo aver testato la funzionalità nella modalità Game, fare clic con il pulsante destro del mouse sull'oggetto Cube e scegliere Delete per rimuoverlo dalla scena.