Gyakorlat – Gombok és dinamikus menük panelje
A bemenetek többféleképpen is megadhatóak. A bemenetek bizonyos eseményeket aktiválnak, és módosításokat hajtanak végre. A felhasználói felület összetevői segítenek a felhasználóknak a hologramokkal való interakcióban a helyszínen.
Statikus gombpanel létrehozása
A Hierarchia ablakban kattintson a jobb gombbal a RoverExplorer objektumra, és válassza az Üres létrehozása lehetőséget, ha üres objektumot szeretne hozzáadni a RoverExplorer gyermekéhez. Nevezze el az objektumgombokat, és konfigurálja az átalakítás összetevőt az alábbiak szerint:
- Pozíció: X = -0,6, Y = 0,036, Z = -0,5
- Forgatás: X = 90, Y = 0, Z = 0
- Méretezés: X = 1, Y = 1, Z = 1
A Projekt ablakban keresse meg az Eszközök>MRTK-t. Tutorials.GettingStarted>Prefabs mappa, kattintson és húzza a PressableCylinderButton előfabát a Gombok objektumra, majd kattintson a jobb gombbal a PressableCylinderButton elemre, és válassza a Duplikálás lehetőséget egy másolat létrehozásához. Ismételje meg, amíg összesen három PressableCylinderButton objektumot nem talál a Gombok területen:
Egy ablak arra kéri, hogy importálja a TextMesh Pro-t. Válassza az első lehetőséget a "TMP Essentials importálása" elemre.
A Hierarchia panelen válassza a Gombok objektumot, majd a Felügyelő panelen válassza az Összetevő hozzáadása lehetőséget az objektumsáv-összetevő hozzáadásához. Konfigurálja az alábbiak szerint:
- Objektumsáv folyamatiránya: Vízszintes
- Térköz: X = 0,2, Y = 0
Rendelje hozzá az egyes objektumokat a Gombok területen az Objektumsáv-összetevő Objektumsáv-objektumok listájához:
A Hierarchia panelen adja meg a Tippek, a Robbantás és az Alaphelyzetbe állítás gombot. Minden gombnál módosítsa a SpeechRecognitionKeyword tulajdonságot az Advanced StatefulInteractable Gépház alatt a Lenyomható gomb összetevőben a gombneveknek megfelelően:
A Hierarchia panelen válassza a Tippek gombobjektumot, majd a Felügyelő ablakban konfigurálja a PressableButton.OnClicked () eseményt az alábbiak szerint:
- A RoverAssembly objektum hozzárendelése a Nincs (Objektum) mezőhöz
- A Nincs függvény legördülő listából válassza a PlacementHintsController>TogglePlacementHints () lehetőséget a függvénynek az esemény aktiválásakor futtatandó műveletként való beállításához
A Hierarchia panelen válassza a Robbantás gomb objektumot, majd a Felügyelő ablakban konfigurálja a PressableButton.OnClicked () eseményt az alábbiak szerint:
- A RoverAssembly objektum hozzárendelése a Nincs (Objektum) mezőhöz
- A Nincs függvény legördülő menüben válassza a ExplodedViewController>ToggleExplodedView() lehetőséget a függvénynek az esemény aktiválásakor végrehajtandó műveletként való beállításához
A Játék mód megadásához nyomja le a Lejátszás gombot. Nyomja le és tartsa lenyomva a szóközbillentyűt a kéz aktiválásához, és az egérrel nyomja le a Tippek gombot az elhelyezési tippobjektumok láthatóságának váltásához:
A Robbantás gomb be- és kikapcsolja a robbantott nézetet:
A Modul későbbi részében implementáljuk az Alaphelyzetbe állítás gombot.
A felhasználót követő dinamikus menü létrehozása
A Projekt panelen lépjen a Packages>MRTK UX Components>Near Menu mappára, kattintson és húzza a NearMenuBase előfabot a Hierarchia ablakba, állítsa az átalakítás helyét X = 0, Y = -0,4, Z = 0 értékre, és konfigurálja az alábbiak szerint:
- Ellenőrizze, hogy a SolverHandler összetevő nyomon követett céltípusa fejre van-e állítva
- Jelölje be a RadialView Solver összetevő melletti jelölőnégyzetet, hogy alapértelmezés szerint engedélyezve legyen
A Hierarchia ablakban nevezze át az objektumot menüre, majd bontsa ki a MenuContent-HorizontalLayout (Menü és Rögzítés) > Buttons-GridLayout (Gombok) gyermekobjektumot a három gomb megjelenítéséhez:
Nevezze át a Buttons-GridLayout (Gombok) első gombját mutatóra, majd a Hierarchia ablakban konfigurálja a Mutató játék objektumot az alábbiak szerint:
- Válassza ki a Frontplate > AnimatedContent > Icon > Label objektumot, és módosítsa a TextMesh Pro összetevőt a gomb nevének megfelelően. Győződjön meg arról, hogy a Címke objektum aktiválva van a hierarchiában
- Konfigurálja a PressableButton.OnClicked() eseményt úgy, hogy a Jelző objektumot chevronként rendeli hozzá a Nincs (Objektum) mezőhöz, és a Nincs függvény legördülő listából válassza a GameObject > SetActive (bool) lehetőséget (ellenőrizze, hogy az argumentum jelölőnégyzet be van-e jelölve)
- Válassza ki a Frontplate > AnimatedContent > Icon > UIButtonFontIcon objektumot, és módosítsa az ikont a Betűtípus ikonválasztó összetevő keresési ikonjára. Ezt megtalálhatja az ikonok listájában, vagy beállíthatja az aktuális ikon nevét "Icon 130" értékre
A sávjelző objektum letiltásához a Hierarchia panelen válassza ki a sávjelként megjelenő Jelző objektumot, majd a Felügyelő panelen:
- Törölje a jelet a neve melletti jelölőnégyzetből, hogy alapértelmezés szerint inaktívvá tegye
- Az Irányított jelzővezérlő (Szkript) összetevő hozzáadásához használja az Összetevő hozzáadása gombot
Nevezze át a második gombot a TapToPlace névre, majd a Hierarchia ablakban konfigurálja a TapToPlace játékobjektumot az alábbiak szerint:
- Válassza ki a Frontplate > AnimatedContent > Icon > Label objektumot, és módosítsa a TextMesh Pro összetevőt a gomb nevének megfelelően. Győződjön meg arról, hogy a Címke objektum aktiválva van a hierarchiában
- Konfigurálja a PressableButton.OnClicked() eseményt úgy, hogy hozzárendeli a RoverExplorer> RoverAssembly objektumot a Nincs (Objektum) mezőhöz, és a Nincs függvény legördülő listából kiválasztja a TapToPlace>bool Engedélyezve lehetőséget (ellenőrizze, hogy az argumentum jelölőnégyzet be van-e jelölve)
- Válassza ki az Előlapi > AnimatedContent > Icon > UIButtonFontIcon objektumot, és módosítsa az ikont a Kéz ikonra a Betűtípus ikonválasztó összetevőn. Ezt megtalálhatja az ikonok listájában, vagy beállíthatja az aktuális ikon nevét "Icon 13" (Ikon 13) értékre
A Hierarchia ablakban válassza ki a RoverAssembly objektumot, majd a Felügyelő ablakban konfigurálja a Tap To Place (Script) összetevőt az alábbiak szerint:
- Törölje a jelet a neve melletti jelölőnégyzetből, hogy alapértelmezés szerint inaktívvá tegye
- Az On Placing Stopped () eseményszakaszban kattintson a + ikonra egy új esemény hozzáadásához:
- A RoverExplorer>RoverAssembly objektum hozzárendelése a Nincs (Objektum) mezőhöz
- A Nincs függvény legördülő listában válassza a TapToPlace>bool Engedélyezve lehetőséget a tulajdonság értékének frissítéséhez az esemény aktiválásakor
- Ellenőrizze, hogy az argumentum jelölőnégyzet nincs-e bejelölve