Esercizio - Pannello dei pulsanti e ai menu dinamici
Esistono diversi modi per fornire input. Gli input attivano determinati eventi ed eseguono alcune modifiche. I componenti dell'interfaccia utente consentono agli utenti di interagire con gli ologrammi nella scena.
Creare un pannello di pulsanti statico
Nella finestra Hierarchy (Gerarchia) fare clic con il pulsante destro del mouse sull'oggetto RoverExplorer e selezionare Create Empty (Crea vuoto) per aggiungere un oggetto vuoto come figlio di RoverExplorer. Assegnare all'oggetto il nome Buttons e configurare il componente Transform come indicato di seguito:
- Position (Posizione): X = -0.6, Y = 0.036, Z = 0.5
- Rotazione: X = 90, Y = 0, Z = 0
- Scale (Scala): X = 1, Y = 1, Z = 1
Nella finestra Project (Progetto) passare alla cartella Asset>MRTK.Tutorials.GettingStarted>Prefabs, fare clic e trascinare il prefab PressableCylinderButton sull'oggetto Pulsanti, quindi fare clic con il pulsante destro del mouse su PressableCylinderButton e scegliere Duplica per creare una copia. Ripetere queste operazioni fino a ottenere un totale di tre oggetti PressableCylinderButton sotto Pulsanti:
Una finestra richiederà di importare TextMesh Pro. Selezionare la prima opzione, "Importa TMP Essentials".
Nel riquadro Hierarchy (Gerarchia) selezionare l'oggetto Pulsanti e quindi nel riquadro Inspector (Controllo) selezionare Aggiungi componente per aggiungere il componente Barra degli oggetti. Eseguire la configurazione nel modo seguente:
- Direzione del flusso della barra degli oggetti: orizzontale
- Spaziatura tra: X = 0,2, Y = 0
Assegnare ogni oggetto in Pulsanti all'elenco Oggetti barra oggetti nel componente Barra oggetti :
Nel riquadro Hierarchy (Gerarchia) assegna ai pulsanti i nomi Hints, Explode e Reset. Per ogni pulsante, modificare la proprietà SpeechRecognitionKeyword in Impostazioni avanzate StatefulInteractable nel componente Pulsante interattivo in modo che corrispondano ai nomi dei pulsanti:
Nel riquadro Gerarchia selezionare l'oggetto pulsante Hints e quindi nella finestra Controllo configurare l'evento PressableButton.OnClicked () come indicato di seguito:
- Assegna l'oggetto RoverAssembly al campo None (Object) (Nessuno - Oggetto)
- Dall'elenco a discesa No Function (Nessuna funzione) seleziona PlacementHintsController>TogglePlacementHints () per impostare questa funzione come l'azione da eseguire quando viene attivato l'evento
Nel riquadro Gerarchia selezionare l'oggetto pulsante Explode e quindi nella finestra Controllo configurare l'evento PressableButton.OnClicked () come indicato di seguito:
- Assegna l'oggetto RoverAssembly al campo None (Object) (Nessuno - Oggetto)
- Dall'elenco a discesa Nessuna funzione selezionare ExplodedViewController>ToggleExplodedView () per impostare questa funzione come l'azione da eseguire quando viene attivato l'evento
Fai clic sul pulsante Play (Esegui) per passare alla modalità di gioco. Premere e tenere premuta la barra spaziatrice per attivare la mano e usare il mouse per premere il pulsante Hints per attivare/disattivare la visibilità degli oggetti relativi ai suggerimenti per il posizionamento:
Il pulsante Explode attiverà e disattiverà la visualizzazione esplosa:
Verrà implementato il pulsante Reimposta più avanti nel modulo.
Creare un menu dinamico che segue l'utente
Nel riquadro Progetto passare alla cartella Pacchetti>Componenti UX MRTK>Menu Near, fare clic e trascinare il prefab NearMenu4x1 nella finestra Gerarchia, impostare il campo Posizione della trasformazione su X = 0, Y = -0.4, Z = 0 e configurare il prefab come indicato di seguito:
- Verifica che per Tracked Target Type (Tipo destinazione tracciata) del componente SolverHandler sia impostato il valore Head (Testa)
- Selezionare la casella di controllo accanto al componente RadialView in modo che sia abilitato per impostazione predefinita
Nella finestra Gerarchia, rinominare l'oggetto in Menu, quindi espandere l'oggetto figlio MenuContent-HorizontalLayout (Menu e Pin) > Buttons-GridLayout (Pulsanti) per rivelare i tre pulsanti:
Rinominare il primo pulsante nella Buttons-GridLayout (Pulsanti) in Indicatore, quindi nella finestra Gerarchia configurare l'oggetto gioco Indicatore come indicato di seguito:
- Selezionare l'oggetto Frontplate > AnimatedContent > Icona > Etichetta e modificare il componente TextMesh Pro in modo che corrisponda al nome del pulsante. Assicurarsi che l'oggetto Etichetta sia attivato nella gerarchia
- Configurare l'evento PressableButton.OnClicked() assegnando l'oggetto Indicatore simile a un chevron, al campo Nessuno (Oggetto) e selezionando GameObject > SetActive (bool) dall'elenco a discesa Nessuna funzione (verificare che la casella di controllo dell'argomento sia selezionata)
- Selezionare l'oggetto Frontplate > AnimatedContent > Icona > UIButtonFontIcon e modificare l'icona nell'icona di ricerca nel componente Selettore icona carattere. È possibile trovarlo nell'elenco delle icone o impostare Nome icona corrente su "Icona 130"
Per disabilitare l'oggetto Indicator della freccia di espansione, nel riquadro Hierarchy (Gerarchia) selezionare l'oggetto Indicator simile a una freccia di espansione, quindi nel riquadro Inspector:
- Deselezionare la casella di controllo accanto al nome per rendere inattivo il componente per impostazione predefinita
- Usare il pulsante Add Component (Aggiungi componente) per aggiungere il componente Directional Indicator Controller (Script) (Controller destinazione direzionale - Script)
Rinominare il secondo pulsante in TapToPlace, quindi nella finestra Gerarchia configurare l'oggetto gioco TapToPlace come segue:
- Selezionare l'oggetto Frontplate > AnimatedContent > Icona > Etichetta e modificare il componente TextMesh Pro in modo che corrisponda al nome del pulsante. Assicurarsi che l'oggetto Etichetta sia attivato nella gerarchia
- Configurare l'evento PressableButton.OnClicked() assegnando l'oggetto RoverExplorer >RoverAssembly al campo Nessuno (Oggetto) e selezionando TapToPlace>bool Enabled dall'elenco a discesa Nessuna funzione (verificare che la casella di controllo argomento sia selezionata)
- Selezionare l'oggetto Frontplate > AnimatedContent > Icona > UIButtonFontIcon e modificare l'icona nell'icona a forma di mano nel componente Selettore icona carattere. È possibile trovarlo nell'elenco delle icone o impostare Nome icona corrente su "Icona 13"
Nella finestra Hierarchy (Gerarchia) seleziona l'oggetto RoverAssembly, quindi nella finestra Inspector (Controllo) configura il componente Tap To Place (Script) (Tocco per posizionamento - Script) come indicato di seguito:
- Deseleziona la casella di controllo accanto al nome per rendere inattivo il componente per impostazione predefinita
- Nella sezione dell'evento On Placing Stopped () (All'arresto del posizionamento) selezionare l'icona + per aggiungere un nuovo evento:
- Assegnare l'oggetto RoverExplorer>RoverAssembly al campo None (Object) (Nessuno - Oggetto)
- Dall'elenco a discesa No Function (Nessuna funzione) seleziona TapToPlace>bool Enabled per aggiornare il valore di questa proprietà quando viene attivato l'evento
- Verifica che la casella di controllo dell'argomento sia deselezionata