Esercizio - Pannello dei pulsanti e ai menu dinamici

Completato

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

  1. 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

    Screenshot of Unity with newly created Buttons object selected and positioned.

  2. 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:

    Screenshot of Unity with newly added PressableRoundButton prefabs.

    Una finestra richiederà di importare TextMesh Pro. Selezionare la prima opzione, "Importa TMP Essentials".

  3. 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 :

    Screenshot of Unity Buttons object with GridObjectCollection component added, configured, and applied.

  4. 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:

    Screenshot showing button text labels configured.

  5. 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

    Screenshot of Hints button object OnClick event configured.

  6. 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

    Screenshot of Unity with Explode button object OnClick event configured.

  7. 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:

    Screenshot of Unity Play mode split view with Hints button being pressed.

  8. Il pulsante Explode attiverà e disattiverà la visualizzazione esplosa:

    Screenshot of Unity Play mode split view with Explode button being pressed.

    Verrà implementato il pulsante Reimposta più avanti nel modulo.

Creare un menu dinamico che segue l'utente

  1. 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

    Screenshot of Unity with newly added near menu prefab selected.

  2. 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:

    Screenshot of Unity with Menu object selected and ButtonCollection object expanded.

  3. 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"

    Screenshot of Unity with Indicator button object Button Config Helper configured.

  4. 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)

    Screenshot of Unity with Indicator object selected, disabled, and DirectionalIndicatorController component added.

  5. 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"

    Screenshot of Unity with TapToPlace button object Button Config Helper configured.

  6. 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

    Screenshot of Unity with TapToPlace component reconfigured.