Ćwiczenie — dodawanie skryptów interakcji ręcznej do obiektu

Ukończone

Skrypt ObjectManipulator obsługuje modalność "bezpośredniej manipulacji" modelu wejściowego "kontrolerów rąk i 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

  1. Na pasku menu wybierz pozycję GameObject>3D Object>Cube.

    Screenshot of menu commands for adding the cube.

    Domyślny rozmiar modułu to jeden metr kwadratowy — jest to zbyt duże dla naszych celów. Przeskalujemy rozmiar w dół do 20x20x20 cm.

  2. Wybierz moduł, a następnie w inspektorze zmień wartości Transform/Scale modułu 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.

  3. W inspektorze zmień wartości przekształć/położenie modułu na następujące:

    X = -0.2, Y = 1.6, Z = 0.5

    Screenshot of the cube's transform component after updates.

    Chcemy zobaczyć trzy boki modułu, więc zmienimy też rotację sześcianu.

    Uwaga

    Wysokość modułu jest ustawiona na 1,6, aby dopasować wysokość Aparat Przesunięcie na mrTK XR Rig, umieszczając go mniej więcej na poziomie oka.

  4. W inspektorze zmień wartości Tranform/Rotation modułu 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 , a następnie 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 zderzacza (nie musisz wykonywać żadnych czynności w tym miejscu — moduł aparatu Unity ma już dołączony domyślnie moduł Box Collider)
  • Składnik Manipulator obiektów (skrypt)
  1. 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).

    Screenshot of adding the Object Manipulator script.

    Skrypt ObjectManipulator sprawia, że obiekt można przenosić, skalować i obracać jedną lub dwiema rękami. Po dodaniu skryptu Object Manipulator skrypt programu Constraint Manager jest automatycznie dodawany, ponieważ skrypt manipulatora obiektów zależy od niego.

    Screenshot of the Constraint Manager script added to the cube.

Aktualizowanie materiału modułu

W celach wydajności zaleca się używanie materiałów MRTK zamiast domyślnych materiałów aparatu Unity.

  1. Po wybraniu modułu znajdź sekcję "Materiały" w składniku Moduł renderowania siatki.
  2. Zastąp materiał domyślny materiałem MRTK_Standard_White znajdującym się w obszarze MRTK Standard Assets Materials>.

Dodawanie drugiego modułu

  1. W hierarchii kliknij prawym przyciskiem myszy moduł, a następnie wybierz polecenie Duplikuj. Zduplikowany moduł zostanie wyświetlony z nazwą "Cube (1)."

  2. Kliknij prawym przyciskiem myszy oryginalny moduł, wybierz polecenie Zmień nazwę, a następnie nadaj modułowi nazwę "Blisko modułu".

  3. 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.

  4. 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ć Blisko sześcianu 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 Main Aparat w oknie Scena.

    Screenshot of the Main Camera view in the Scene window.

    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 opcji Clear Flags aparatu na Skybox, jeśli nie jest domyślnie.

Chwytanie i przenoszenie modułów w trybie odtwarzania

  1. Wybierz przycisk Odtwórz. Po rozpoczęciu odtwarzania projektu widok przełącza się do okna Gra .

    Screenshot of the Game window after entering Play mode.

    Uwaga

    Przed rozpoczęciem odtwarzania upewnij się, że istnieje prawidłowy zestaw profilów w obszarze Project Ustawienia> MRTK3.

  2. Wybierz przycisk z trzema kropkami powyżej prawego górnego rogu okna Gry , a następnie wybierz pozycję Maksymalizuj.

    Screenshot of Maximize command for the Game window.

  3. Naciśnij pasek spacji, aby wyświetlić symulowaną prawą rękę w widoku.

  4. Przenieś symulowaną rękę bliżej w pobliżu modułu, aż dotknie sześcianu po stronie lub dolnej.

    Screenshot of the simulated right hand touching the Near Cube.

  5. Wybierz lewy przycisk myszy (powoduje to, że ręka "chwycić" sześcian), a następnie przeciągnij sześcian wokół sceny.

    Screenshot of Move the cube.

    Aby chwycić i przenieść Far Cube, użyjemy wskaźnika dalekiego dołączonego do symulowanej ręki.

  6. Jeśli chcesz, naciśnij 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.

    Screenshot of simulated hand's far pointer.

  7. 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ę na sześcianie.

    Screenshot of the far pointer touching the cube.

  8. Wybierz 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.

Symulacja danych wejściowych w edytorze aparatu Unity

Możesz przetestować zachowanie obiektu holograficznego za pomocą funkcji symulacji danych wejściowych w edytorze aparatu Unity.

Zmienianie widoku w scenie

  • Aby przenieść aparat do przodu/lewej/z powrotem/z prawej strony, naciśnij klawisze W/A/S/D.
  • Aby przenieść aparat w pionie, naciśnij klawisze Q i E.
  • Aby obrócić aparat, naciśnij prawy przycisk myszy, a następnie przeciągnij.

Symulowanie danych wejściowych ręcznie

  • Aby włączyć symulowaną prawą rękę, naciśnij i przytrzymaj pasek spacji. Aby usunąć rękę, zwolnij pasek spacji.
  • Aby włączyć lewą symulowaną rękę, naciśnij i przytrzymaj lewy klawisz shift. Aby usunąć rękę, zwolnij klucz.
  • Aby przenieść jedną rękę wokół sceny, przesuń mysz.
  • Aby przesunąć rękę do przodu lub do tyłu, obróć kółko przewijania myszy.
  • Aby zasymulować gest szczypta, wybierz lewy przycisk myszy.
  • Aby obrócić rękę, naciśnij i przytrzymaj pasek spacji + klawisz CTRL (po prawej stronie) lub lewy klawisz shift + ctrl (lewa ręka), a następnie przesuń mysz.

Trwałe ręce

  • Aby włączyć rękę i zachować go na ekranie bez kontynuowania trzymania klawisza, naciśnij klawisz T (lewa ręka) lub Y (po prawej stronie). Aby usunąć ręce, naciśnij ponownie te klawisze.

Tworzenie aplikacji w środowisku Unity

  1. Na pasku menu wybierz pozycję Kompilacja pliku>Ustawienia....

  2. W oknie Kompilacja Ustawienia wybierz przycisk Dodaj otwarte sceny, aby dodać bieżącą scenę do listy Sceny w kompilacji.

  3. Wybierz przycisk Kompilacja.

  4. W oknie Kompilacja platforma uniwersalna systemu Windows przejdź do folderu, w którym chcesz przechowywać kompilację, lub utwórz nowy folder i przejdź do niego, a następnie wybierz przycisk Wybierz folder, aby rozpocząć proces kompilacji.

    Screenshot of the location to save your build.

    Zostanie wyświetlony pasek postępu, który poinformuje Cię o tym, jak trwa kompilacja.

(Opcjonalnie) Kompilowanie i wdrażanie aplikacji

Uwaga

Kompilowanie i testowanie na urządzeniu HoloLens 2 nie jest obowiązkowe. Alternatywnie możesz przetestować emulator urządzenia HoloLens 2 , jeśli nie masz urządzenia. Urządzenia można kupić w HoloLens.com.

  1. Po zakończeniu procesu kompilacji zostanie otwarty Eksplorator plików systemu Windows i zostanie wyświetlony folder kompilacji. Przejdź do folderu, a następnie kliknij dwukrotnie plik rozwiązania, aby otworzyć go w programie Visual Studio:

    Screenshot of File Explorer with the builds folder displayed.

  2. Skonfiguruj program Visual Studio dla urządzenia HoloLens, wybierając konfigurację wzorca lub wydania i architekturę ARM64 :

    Screenshot of Visual Studio window with the build options for the project.

    Napiwek

    Jeśli wdrażasz na urządzeniu HoloLens (1. generacja), wybierz architekturę x86 .

    Uwaga

    Jeśli w programie Visual Studio nie widzisz opcji "Urządzenie" jako elementu docelowego, może być konieczne zmianę projektu startowego rozwiązania z projektu IL2CPP na projekt platformy UWP. W tym celu w Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję [nazwa projektu](uniwersalny system Windows), a następnie wybierz polecenie Ustaw jako projekt startowy.

    Ważne

    Przed utworzeniem kompilacji na urządzeniu urządzenie musi być w trybie dewelopera i sparowane z komputerem dewelopera. Zobacz sekcję o nazwie "Włączanie trybu dewelopera" na tej stronie.

  3. Wybierz listę rozwijaną docelową wdrożenia, a następnie wykonaj jedną z następujących czynności:

    • Jeśli tworzysz i wdrażasz za pośrednictwem sieci Wi-Fi, wybierz pozycję Maszyna zdalna.

    Screenshot of Visual Studio window with Remote Machine as the target.

    • Jeśli tworzysz i wdrażasz za pośrednictwem portu USB, wybierz pozycję Urządzenie.

    Screenshot of Visual Studio window with Device as the target.

  4. Ustaw połączenie zdalne: na pasku menu wybierz pozycję Właściwości projektu>.

  5. W oknie Strony właściwości projektu wybierz pozycję Debugowanie właściwości > konfiguracji.

  6. Wybierz listę rozwijaną Debuger, aby uruchomić, a następnie wybierz pozycję Maszyna zdalna, jeśli nie została jeszcze wybrana.

    Ważne

    Zalecamy ręczne wprowadzenie adresu IP, a nie zależności od funkcji "Wykryto automatycznie". Aby znaleźć swój adres IP, na urządzeniu HoloLens przejdź do Ustawienia Aktualizacje > i zabezpieczeń > dla deweloperów. Adres IP znajduje się w dolnej części okna w obszarze Ethernet.

  7. W polu Nazwa komputera wprowadź adres IP urządzenia.

    Remote connection dialog in Visual Studio

  8. Ustaw tryb uwierzytelniania na uniwersalny (protokół niezaszyfrowany)..

  9. Połączenie urządzenia HoloLens na komputer, a następnie w programie Visual Studio wykonaj jedną z następujących czynności:

    • Aby wdrożyć aplikację na urządzeniu HoloLens i automatycznie uruchomić aplikację bez dołączonego debugera programu Visual Studio, wybierz pozycję Debuguj>rozpocznij bez debugowania.
    • Aby wdrożyć aplikację na urządzeniu HoloLens bez automatycznego uruchamiania aplikacji, wybierz pozycję Kompiluj>rozwiązanie wdróż.

    Screenshot of Visual Studio with the Start Without Debugging menu item displayed.

Parowanie urządzenia

Przy pierwszym wdrożeniu aplikacji na urządzeniu HoloLens z komputera zostanie wyświetlony monit o podanie numeru PIN. Aby utworzyć numer PIN:

  1. W urządzeniu HoloLens przejdź do Ustawienia Aktualizacje > i zabezpieczenia > dla deweloperów.
  2. Wybierz pozycję Para. Spowoduje to wyświetlenie numeru PIN w urządzeniu HoloLens.
  3. Wprowadź numer PIN w oknie dialogowym w programie Visual Studio.
  4. Po zakończeniu parowania w urządzeniu HoloLens wybierz pozycję Gotowe.

Komputer jest teraz sparowany z urządzeniem HoloLens i możesz automatycznie wdrażać aplikacje. Powtórz te kroki dla każdego komputera używanego do wdrażania aplikacji na urządzeniu HoloLens.

Uruchamianie aplikacji na urządzeniu HoloLens

  1. Po zakończeniu kompilowania aplikacji w menu Start urządzenia HoloLens znajdź kafelek aplikacji, a następnie wybierz go.

  2. Po uruchomieniu aplikacji skontaktuj się z modułem Blisko, a następnie przeciągnij go i przeciągnij.

  3. Użyj wskaźnika dalekiego, aby chwycić far cube, a następnie przeciągnij go wokół.

    Napiwek

    Urządzenie HoloLens zapewnia większą elastyczność niż podczas testowania aplikacji w środowisku Unity. Możesz fizycznie poruszać się i używać skrajnego wskaźnika w pobliżu modułu lub dotrzeć i chwycić Far Cube z ręką!

Wskazówki

  • Możesz również wdrożyć w emulatorze urządzenia HoloLens lub utworzyć pakiet aplikacji na potrzeby ładowania bezpośredniego.

  • Możesz zauważyć profiler diagnostyki w aplikacji. Możesz go włączyć lub wyłączyć za pomocą polecenia mowy "Przełącz diagnostykę". Zalecamy, aby profiler był widoczny przez większość czasu podczas programowania, aby zrozumieć, jak zmiany w aplikacji mogą mieć wpływ na wydajność. Możesz na przykład monitorować aplikację, aby upewnić się, że szybkość klatek na sekundę wynosi co najmniej 60 klatek na sekundę.