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:
Windows Mixed Reality urządzeń, takich jak HoloLens. W tym artykule opisano szczypanie ruchów ("Air Tap") i gesty naciśnięcia i przytrzymania.
Aby uzyskać więcej informacji na temat gestów holoLens, zobacz dokumentację Windows Mixed Reality Gesty.
WindowsMixedRealityDeviceManager
owija aparat Unity XR. WSA. Input.GestureRecognizer do korzystania z zdarzeń gestów aparatu Unity z urządzeń HoloLens.Urządzenia z ekranem dotykowym.
UnityTouchController
Opakowuje klasę Unity Touch , która obsługuje fizyczne ekrany dotykowe.
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 .
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 ichdeltaPosition
.Vector3
- Gest położenia 3D. Wyprodukowany przez urządzenie HoloLens w celu informowania o:cumulativeDelta
zdarzenia manipulacjinormalizedOffset
zdarzenia nawigacji
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":
- Przytrzymaj naciśnięcie:
- rozpoczynanie manipulowania
- Wstrzymaj naciśnięcie poza holdStartDuration:
- uruchamianie blokady
- Naciśnięcie wydania:
- ukończ blokadę
- kompletne manipulowanie
- Przytrzymaj naciśnięcie:
"Przenieś":
- Przytrzymaj naciśnięcie:
- rozpoczynanie manipulowania
- Wstrzymaj naciśnięcie poza holdStartDuration:
- uruchamianie blokady
- Przenieś rękę poza element NavigationStartThreshold:
- anuluj blokadę
- uruchamianie nawigacji
- Naciśnięcie wydania:
- kompletne manipulowanie
- kompletna nawigacja
- Przytrzymaj naciśnięcie:
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.