Ćwiczenie — dodawanie interakcji przy użyciu skryptu objectmanipulator
Skrypt ObjectManipulator obsługuje modalność bezpośredniej manipulacji modelu wejściowego rąk i kontrolerów ruchu. Gdy skrypt jest dołączony do obiektu, użytkownik może przenosić, skalować lub obracać obiekt rękami. W tym ćwiczeniu utworzysz dwa moduły, dołączysz do nich niezbędne skrypty, a następnie przeniesiesz moduły.
Dodawanie i dostosowywanie pierwszego modułu
Na pasku menu wybierz pozycję GameObject>3D Object>Cube.
Domyślny rozmiar modułu to jeden metr sześcienny, który jest zbyt duży dla naszych celów. Przeskalujemy rozmiar w dół do 20 centymetrów sześciennych.
Wybierz moduł, a następnie w inspektorze zmień wartości skalowaniamodułu w sekcji Przekształć na następujące:
X = 0,2, Y = 0,2, Z = 0,2
Moduł został umieszczony w scenie w domyślnej pozycji (0,0,0). Oznacza to, że moduł znajduje się w tej samej pozycji co zestaw słuchawkowy użytkownika, a użytkownik nie będzie mógł zobaczyć modułu, dopóki nie przejdzie do tyłu. Zmienimy wartości pozycji modułu, aby była w lepszej lokalizacji do wyświetlania.
W inspektorze zmień wartości pozycji modułu w sekcji Przekształć na następujące:
X = -0.2, Y = 1.6, Z = 0.5
Chcemy zobaczyć trzy boki modułu, więc zmienimy też rotację sześcianu.
W inspektorze zmień wartości rotacji modułu w wartościach sekcji Przekształć na następujące:
X = 9, Y = 14, Z = 0
Napiwek
Aby powiększyć moduł, zaznacz go, upewnij się, że kursor znajduje się nad oknem Scena i naciśnij klawisz F . W ten sposób można powiększyć dowolny obiekt.
Dodawanie skryptów do modułu
Aby obiekt był "chwytany" za pomocą śledzonych rąk, musi mieć dołączone trzy składniki:
- Składnik zderzaka (nie musisz nic robić tutaj; Moduł aparatu Unity ma już domyślnie dołączony zderzacz Box Collider)
- Składnik Manipulator obiektów (skrypt)
- Składnik Constraint Manager (skrypt)
Po wybraniu modułu w oknie Inspector (Inspektor) wybierz przycisk Add Component (Dodaj składnik), a następnie wyszukaj i wybierz skrypt Object Manipulator (Manipulator obiektów).
Skrypt manipulatora obiektów sprawia, że obiekt jest wymienny, skalowalny i obracany za pomocą jednej lub dwóch rąk. Po dodaniu skryptu Object Manipulator skrypt programu Constraint Manager jest automatycznie dodawany, ponieważ skrypt manipulatora obiektów zależy od niego.
Aktualizowanie materiału modułu
W celach wydajności zalecamy używanie materiałów MRTK zamiast domyślnych materiałów aparatu Unity.
- Po wybraniu modułu znajdź i rozwiń sekcję Materiały w składniku modułu renderowania siatki.
- Zastąp materiał domyślny materiałem MRTK_Standard_White znajdującym się w obszarze MRTK Standard Assets Materials>. Można to zrobić, przeciągając materiał bezpośrednio do pola Element w sekcji Materiały
Dodawanie drugiego modułu
W hierarchii kliknij prawym przyciskiem myszy moduł i wybierz polecenie Duplikuj. Zostanie wyświetlony zduplikowany moduł o nazwie Cube (1).
Kliknij prawym przyciskiem myszy oryginalny moduł, wybierz polecenie Zmień nazwę i nadaj modułowi nazwę Near Cube.
Kliknij prawym przyciskiem myszy zduplikowany moduł, wybierz polecenie Zmień nazwę, a następnie nadaj modułowi nazwę Far Cube.
W tej chwili wygląda na to, że w widoku sceny znajduje się tylko jeden moduł. To dlatego, że w pobliżu sześcianu i far cube znajdują się dokładnie w tym samym miejscu. Zmieńmy pozycję i rotację Far Cube.
Po wybraniu opcji Far Cube zmień wartości w składniku Transform na następujące:
Pozycja: X = 0,6, Y = 1,6, Z = 1,1
Obrót: X = 27, Y = 0, Z = 0
Teraz aparat powinien zobaczyć Near Cube po lewej stronie i Far Cube nieco dalej po prawej stronie. Aby to potwierdzić, w hierarchii wybierz pozycję Main Aparat (w obszarze MRTK XR Rig> Aparat Offset), a następnie przejrzyj okno Główne Aparat w oknie Scena.
Napiwek
Jeśli chcesz, aby widok w oknie Scena wyglądał bardziej podobnie do tego, co widzi aparat, przewiń w oknie Scena. Może być konieczne ustawienie flag Clear Flags aparatu na Skybox, jeśli nie jest domyślnie.
Chwytanie i przenoszenie modułów w trybie odtwarzania
Wybierz przycisk Odtwórz. Po rozpoczęciu odtwarzania projektu widok przełącza się do okna Gra .
Uwaga
Przed rozpoczęciem odtwarzania upewnij się, że w obszarze Project Ustawienia> MRTK3 istnieje prawidłowy zestaw profilów.
Wybierz przycisk z trzema kropkami powyżej prawego górnego rogu okna Gry , a następnie wybierz pozycję Maksymalizuj.
Naciśnij i przytrzymaj pasek spacji, aby wyświetlić symulowaną prawą rękę w widoku.
Przenieś symulowaną rękę bliżej modułu Bliskiego sześcianu, aż dotknie sześcianu po stronie lub dolnej.
Kliknij lewy przycisk myszy (powoduje to, że ręka "chwycić" sześcian), a następnie przeciągnij sześcian wokół sceny.
Aby chwycić i przenieść Far Cube, użyjemy wskaźnika dalekiego dołączonego do symulowanej ręki.
Jeśli chcesz, naciśnij i przytrzymaj ponownie pasek spacji, aby wyświetlić symulowaną prawą rękę. Zwróć uwagę na wskaźnik daleko, który rozciąga się od końca palca indeksu dłoni.
Przesuń rękę bliżej far cube, aż zobaczysz końcówkę wskaźnika na sześcianie. Może być konieczne przeniesienie ręki w ruchu okrągłym kilka razy, aby na wierzchołku wskaźnika pojawić się w sześcianie.
Kliknij lewy przycisk myszy (sprawia to, że ręka jest zamknięta, biorąc pod uwagę to, co nazywamy "gestem szczypta"), a następnie przeciągnij sześcian wokół sceny.