Cvičení – panel tlačítek a dynamických nabídek

Dokončeno

Existuje několik způsobů, jak zadat vstupy. Vstupy aktivují určité události a provádějí určité změny. Komponenty uživatelského rozhraní pomáhají uživatelům pracovat s hologramy na scéně.

Vytvoření statického panelu tlačítek

  1. V okně Hierarchie klikněte pravým tlačítkem myši na objekt RoverExplorer a výběrem možnosti Vytvořit prázdné přidejte prázdný objekt jako podřízený objekt RoverExplorer. Pojmenujte tlačítka objektu a nakonfigurujte komponentu Transformace následujícím způsobem:

    • Pozice: X = -0,6, Y = 0,036, Z = -0,5
    • Otočení: X = 90, Y = 0, Z = 0
    • Měřítko: X = 1, Y = 1, Z = 1

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

  2. V okně Projekt přejděte na sadu PROSTŘEDKŮ>MRTK. Tutorials.GettingStarted Prefabs folder, click-and-drag the PressableCylinderButton prefab to the Buttons object, then right-click the PressableCylinderButton and select Duplicate to create a copy, repeat until you's total of three PressableCylinderButton objects under Buttons:>

    Screenshot of Unity with newly added PressableRoundButton prefabs.

    Zobrazí se okno s výzvou k importu TextMesh Pro. Vyberte první možnost pro import základních informací TMP.

  3. V podokně Hierarchie vyberte objekt Tlačítka a potom v podokně inspektoru vyberte Přidat komponentu a přidejte komponentu Panel objektů . Nakonfigurujte ho následujícím způsobem:

    • Směr toku pruhu objektu: vodorovně
    • Mezery mezi: X = 0,2, Y = 0

    Přiřaďte jednotlivé objekty v seznamu Objektů pruhu objektů v komponentě Objektový pruh:

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

  4. V podokně Hierarchie pojmenujte tlačítka Nápověda, Explode a Reset. U každého tlačítka změňte vlastnost SpeechRecognitionKeyword v části Advanced StatefulInteractable Nastavení v komponentě stisknutelným tlačítkem tak, aby odpovídala názvům tlačítek::

    Screenshot showing button text labels configured.

  5. V podokně Hierarchie vyberte objekt tlačítka Hints a pak v okně inspektoru nakonfigurujte událost PressableButton.OnClicked () následujícím způsobem:

    • Přiřazení objektu RoverAssembly k poli None (Object)
    • V rozevíracím seznamu Žádná funkce vyberte PlacementHintsController>TogglePlacementHints () a nastavte tuto funkci jako akci, která se má spustit při aktivaci události.

    Screenshot of Hints button object OnClick event configured.

  6. V podokně Hierarchie vyberte objekt tlačítka Explode a pak v okně inspektoru nakonfigurujte událost PressableButton.OnClicked () následujícím způsobem:

    • Přiřazení objektu RoverAssembly k poli None (Object)
    • V rozevíracím seznamu Žádná funkce vyberte ExplodedViewController>ToggleExplodedView() a nastavte tuto funkci jako akci, která se má provést při aktivaci události.

    Screenshot of Unity with Explode button object OnClick event configured.

  7. Stisknutím tlačítka Přehrát přejdete do herního režimu. Stisknutím a podržením mezerníku aktivujte ruku a pomocí myši přepněte viditelnost objektů nápovědy umístění:

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

  8. Tlačítko Explode přepne rozložené zobrazení zapnuté a vypnuté:

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

    Tlačítko Resetovat implementujeme později v modulu.

Vytvoření dynamické nabídky, která následuje za uživatelem

  1. V podokně Projekt přejděte do složky Packages>MRTK UX Components>Near Menu, click-and-drag the NearMenuBase prefab into the Hierarchy window, set its Transform Position to X = 0, Y = -0.4, Z = 0 a configure it as následujícím způsobem:

    • Ověřte, že je pro komponentu ŘešitelHandler nastavený sledovaný cílový typ hlavičky.
    • Zaškrtněte políčko vedle komponenty Řešitel RadialView , aby byla ve výchozím nastavení povolená.

    Screenshot of Unity with newly added near menu prefab selected.

  2. V okně Hierarchie přejmenujte objekt na Menu a potom rozbalte podřízený objekt MenuContent-HorizontalLayout (Menu and Pin) > Buttons-GridLayout (Tlačítka), aby se zobrazila tři tlačítka:

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

  3. Přejmenujte první tlačítko v Tlačítkách-GridLayout (tlačítka) na Indikátor a potom v okně Hierarchie nakonfigurujte herní objekt Indikátor následujícím způsobem:

    • Vyberte objekt Popisek ikony > Frontplate > AnimatedContent > a změňte komponentu TextMesh Pro tak, aby odpovídala názvu tlačítka. Ujistěte se, že je v hierarchii aktivovaný objekt Label.
    • Nakonfigurujte událost PressableButton.OnClicked() přiřazením objektu Indikátor, který vypadá jako dvojitá šipka, do pole None (Object) a výběrem GameObject > SetActive (bool) z rozevíracího seznamu Žádná funkce (ověřte, zda je zaškrtnuté políčko argumentu).
    • Vyberte objekt UIButtonFontIcon ikony Frontplate > AnimatedCon > > a změňte ikonu na ikonu hledání v komponentě Výběr ikony písma. Najdete ho v seznamu ikon nebo můžete nastavit název aktuální ikony na Ikonu 130.

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

  4. Pokud chcete zakázat objekt indikátoru dvojité šipky, vyberte v podokně Hierarchie objekt Indikátor, který vypadá jako dvojitá šipka, a pak v podokně inspektoru:

    • Zrušte zaškrtnutí políčka vedle názvu, aby byl ve výchozím nastavení neaktivní.
    • Pomocí tlačítka Přidat komponentu přidejte komponentu Směrový kontroler indikátoru (Skript).

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

  5. Druhé tlačítko přejmenujte na TapToPlace a pak v okně Hierarchie nakonfigurujte herní objekt TapToPlace následujícím způsobem:

    • Vyberte objekt Popisek ikony > Frontplate > AnimatedContent > a změňte komponentu TextMesh Pro tak, aby odpovídala názvu tlačítka. Ujistěte se, že je v hierarchii aktivovaný objekt Label.
    • Nakonfigurujte událost PressableButton.OnClicked() přiřazením objektu RoverExplorer >RoverAssembly do pole None (Object) a výběrem možnosti TapToPlace>bool Enabled z rozevíracího seznamu Bez funkce (ověřte, zda je zaškrtnuté políčko argumentu).
    • Vyberte objekt UIButtonFontIcon ikony Frontplate > AnimatedCon > > a změňte ikonu na ikonu ruky u komponenty Výběr ikony písma. Najdete ho v seznamu ikon nebo můžete nastavit název aktuální ikony na Ikonu 13.

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

  6. V okně Hierarchie vyberte objekt RoverAssembly a potom v okně inspektoru nakonfigurujte komponentu Klepnutím na místo (skript ) následujícím způsobem:

    • Zrušte zaškrtnutí políčka vedle jeho názvu, aby byl ve výchozím nastavení neaktivní.
    • V části Při umísťování zastavených událostí vyberte ikonu + a přidejte novou událost:
    • Přiřazení objektu RoverExplorer>RoverAssembly do pole None (Object)
    • V rozevíracím seznamu Žádná funkce vyberte TapToPlace>bool Enabled a aktualizujte tuto hodnotu vlastnosti při aktivaci události.
    • Ověřte, že políčko argumentu není zaškrtnuto.

    Screenshot of Unity with TapToPlace component reconfigured.