Ćwiczenie — tworzenie inteligentnych umieszczania obiektów za pomocą narzędzi do rozwiązywania

Ukończone

Moduły rozwiązywania to jeden z składników zestawu narzędzi Mixed Reality Toolkit (MRTK). Przyjrzyjmy się dwóm typom rozwiązań i ich odpowiednim funkcjom.

Lokalizacja modułów rozwiązywania w zestawie narzędzi MRTK

Moduły rozwiązywania zestawu NARZĘDZI MRTK znajdują się w folderze zestawu SDK zestawu NARZĘDZI MRTK. Aby wyświetlić dostępne rozwiązania w projekcie, w oknie Project (Projekt) przejdź do pozycji Packages MRTK Spatial Manipulation Solvers (Pakiety>narzędzi do manipulowania>przestrzennego zestawu narzędzi MRTK).

Screenshot that shows the location of the solvers folder.

Moduł rozwiązywania wskaźników kierunkowych

Użyj narzędzia do rozwiązywania wskaźnika kierunkowego, aby skierować użytkownika do obiektów. Oto jak to zrobić:

  1. W oknie Projekt przejdź do pozycji Zasoby>zestawu narzędzi MRTK. Tutorials.GettingStarted>Prefabs. Przeciągnij prefab chevron do okna Hierarchy (Hierarchia) i ustaw jego położenie przekształcenia na X = 0, Y = 1,5, Z = 2, aby umieścić go w pobliżu obiektu RoverExplorer.

    Screenshot that shows the newly added Chevron prefab selected.

  2. Zmień nazwę nowo dodanego obiektu Chevron na Indicator. Następnie w oknie Inspector (Inspektor) wybierz pozycję Add Component (Dodaj składnik), aby dodać element DirectionalIndicator.

    Screenshot that shows the DirectionalIndicator solver component added.

  3. Skonfiguruj składniki DirectionalIndicator i SolverHandler w następujący sposób:

    a. Sprawdź, czy element docelowy śledzonego typu składnika SolverHandler ma wartość Head.

    b. Przypisz element RoverExplorer do elementu DirectionalIndicator Directional Target (Kierunek docelowy), przeciągając go z hierarchii do pola None (Transform).

    c. Zmień przesunięcie widoku na 0.2.

    Screenshot that shows the DirectionalIndicator solver component configured.

  4. Aby wprowadzić tryb gry, naciśnij przycisk Odtwórz. Naciśnij i przytrzymaj prawy przycisk myszy podczas przesuwania myszy w lewo lub w prawo, aby obrócić kierunek wzroku.

    Zwróć uwagę, że po odejściu od obiektu RoverExplorer obiekt Indicator pojawi się i wskaże obiekt RoverExplorer.

    Screenshot that shows the Play mode split view with DirectionalIndicator solver in use.

Moduł rozwiązywania naciśnięcia do miejsca

Użyj modułu rozwiązywania Naciśnij, aby umieścić obiekty w miejscu. Oto jak to zrobić:

  1. W oknie Hierarchy (Hierarchia) wybierz obiekt RoverExplorer>RoverAssembly. Następnie w obszarze Inspector (Inspektor) użyj polecenia Add Component (Dodaj składnik ), aby dodać składnik Tap To Place . Skonfiguruj składnik w następujący sposób:

    a. Sprawdź, czy element docelowy śledzonego typu składnika SolverHandler ma wartość Head.

    b. Usuń zaznaczenie pola wyboru Użyj domyślnego przesunięcia normalnego powierzchni i upewnij się, że przesunięcie normalne powierzchni jest ustawione na 0.

    c. Zaznacz pole wyboru Zachowaj orientację pionową .

    Screenshot that shows the Tap To Place solver component added and configured.

  2. Następnie użyj polecenia Dodaj składnik , aby dodać składnik Stateful Interactable . W oknie Inspector (Inspektor) znajdź zdarzenie Po kliknięciu (). Wybierz ikonę, + aby dodać nowe zdarzenie. Skonfiguruj zdarzenie w następujący sposób:

    a. Przypisz obiekt RoverAssembly jako odbiornik zdarzenia Po kliknięciu (), przeciągając go z hierarchii do pola None (Object).

    b. Z listy rozwijanej No Function (Brak funkcji) wybierz pozycję TapToPlacement>StartPlacement(), aby wywołać tę metodę po wyzwoleniu zdarzenia.

    Screenshot that shows the Tap To Place On Placing Started event configured.

  3. Po wybraniu obiektu RoverAssembly w oknie Hierarchia w oknie Inspector (Inspektor) znajdź zdarzenie On Placing Started (). Wybierz ikonę, + aby dodać nowe zdarzenie.

    Screenshot that shows the Tap To Place On Placing Started event added.

  4. Skonfiguruj zdarzenie w następujący sposób:

    a. Przypisz obiekt RoverAssembly jako odbiornik zdarzenia On Placing Started (), przeciągając go z hierarchii do pola None (Object).

    b. Z listy rozwijanej Brak funkcji wybierz pozycję TapToPlace>float SurfaceNormalOffset, aby zaktualizować wartość właściwości SurfaceNormalOffset po wyzwoleniu zdarzenia.

    c. Sprawdź, czy argument ma wartość 0.

    Screenshot that shows the Tap To Place On Placing Started event configured.

  5. W obszarze Hierarchia kliknij prawym przyciskiem myszy puste miejsce. Wybierz moduł obiektów>3D, aby utworzyć obiekt tymczasowy reprezentujący ziemię i skonfigurować składnik Transform w następujący sposób:

    • Położenie: X = 0, Y = 0,15, Z = 6
    • Obrót: X = 0, Y = 0, Z = 0
    • Skala: X = 10, Y = 0,2, Z = 10

    Screenshot that shows the temporary ground Cube object added and positioned.

  6. Aby wprowadzić tryb gry, naciśnij przycisk Odtwórz. Następnie naciśnij i przytrzymaj prawy przycisk myszy podczas przesuwania myszy w dół, aż spojrzenie uderzy w obiekt RoverAssembly .

    Screenshot that shows the Play mode split view, with gaze hitting the RoverAssembly object.

  7. Przytrzymaj pasek spacji i kliknij lewy przycisk myszy, aby nacisnąć powietrze, a następnie rozpocząć proces naciśnięcia do miejsca.

    Screenshot that shows the Play mode split view, with placing started.

  8. Naciśnij i przytrzymaj prawy przycisk myszy podczas przesuwania myszy w lewo lub w prawo, aby obrócić kierunek wzroku. Gdy jest zadowolony z umieszczania, przytrzymaj pasek spacji i kliknij lewy przycisk myszy, aby wykonać końcowe naciśnięcie powietrza.

    Screenshot that shows the Play mode split view, with placing ended.

  9. Po zakończeniu testowania funkcji w trybie gry kliknij prawym przyciskiem myszy obiekt Cube i wybierz polecenie Usuń , aby usunąć ją ze sceny.

    Screenshot that shows how to delete the temporary ground Cube.