Cvičení – panel tlačítek a dynamických nabídek
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
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
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:>
Zobrazí se okno s výzvou k importu TextMesh Pro. Vyberte první možnost pro import základních informací TMP.
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:
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::
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.
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.
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í:
Tlačítko Explode přepne rozložené zobrazení zapnuté a vypnuté:
Tlačítko Resetovat implementujeme později v modulu.
Vytvoření dynamické nabídky, která následuje za uživatelem
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á.
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:
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.
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).
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.
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.