Gesty — MRTK2

Gesty to zdarzenia wejściowe oparte na ludzkich rękach. Istnieją dwa typy urządzeń, które zgłaszają zdarzenia wprowadzania gestów w zestawie narzędzi MRTK:

Oba te źródła wejściowe używają profilu Ustawienia gestu do tłumaczenia zdarzeń dotyku i gestu aparatu Unity odpowiednio na akcje wejściowe zestawu narzędzi MRTK. Ten profil można znaleźć w profilu Ustawienia systemu wejściowego .

Profil gestu

Zdarzenia gestu

Zdarzenia gestu są odbierane przez zaimplementowanie jednego z interfejsów obsługi gestów: IMixedRealityGestureHandler lub IMixedRealityGestureHandler<TYPE> (zobacz tabelę procedur obsługi zdarzeń).

Zobacz Przykładowa scena , aby zapoznać się z przykładową implementacją programu obsługi zdarzeń gestu.

Podczas implementowania wersji ogólnej zdarzenia OnGestureCompleted i OnGestureUpdated mogą odbierać typizowane dane następujących typów:

  • Vector2 - Gest położenia 2D. Produkowane przez ekrany dotykowe, aby poinformować o ich deltaPosition.
  • Vector3 - Gest położenia 3D. Wyprodukowany przez urządzenie HoloLens w celu informowania o:
  • Quaternion - Gest obrotu 3D. Dostępne dla niestandardowych źródeł danych wejściowych, ale obecnie nie są generowane przez żadne z istniejących źródeł.
  • MixedRealityPose - Połączony gest położenia/obrotu 3D. Dostępne dla niestandardowych źródeł danych wejściowych, ale obecnie nie są generowane przez żadne z istniejących źródeł.

Kolejność zdarzeń

Istnieją dwa główne łańcuchy zdarzeń, w zależności od danych wejściowych użytkownika:

  • "Hold":

    1. Przytrzymaj naciśnięcie:
      • rozpoczynanie manipulowania
    2. Wstrzymaj naciśnięcie poza holdStartDuration:
      • uruchamianie blokady
    3. Naciśnięcie wydania:
      • ukończ blokadę
      • kompletne manipulowanie
  • "Przenieś":

    1. Przytrzymaj naciśnięcie:
      • rozpoczynanie manipulowania
    2. Wstrzymaj naciśnięcie poza holdStartDuration:
      • uruchamianie blokady
    3. Przenieś rękę poza element NavigationStartThreshold:
      • anuluj blokadę
      • uruchamianie nawigacji
    4. Naciśnięcie wydania:
      • kompletne manipulowanie
      • kompletna nawigacja

Przykładowa scena

Scena HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) pokazuje, jak za pomocą wskaźnika Wynik zduplikować obiekt w lokalizacji trafienia.

Skrypt GestureTester (Assets/MRTK/Examples/Demos/HandTracking/Script) to przykładowa implementacja do wizualizacji zdarzeń gestów za pośrednictwem obiektów GameObjects. Funkcje obsługi zmieniają kolor obiektów wskaźnika i wyświetlają ostatnie zarejestrowane zdarzenie w obiektach tekstowych w scenie.