Gesty — MRTK2
Gesty są zdarzeniami wejściowymi opartymi na ludzkich rękach. Istnieją dwa typy urządzeń, które zgłaszają zdarzenia wprowadzania gestów w zestawie narzędzi MRTK:
Urządzenia Windows Mixed Reality, takie jak HoloLens. W tym artykule opisano szczypanie ruchów ("Air Tap") i gestów tap-and-hold.
Aby uzyskać więcej informacji na temat gestów HoloLens, zobacz dokumentację Gesty rzeczywistości mieszanej systemu Windows.
WindowsMixedRealityDeviceManager
opakowuje 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 danych wejściowych używają profilu Gest Ustawienia, aby odpowiednio przetłumaczyć zdarzenia Touch i Gest aparatu Unity na akcje wejściowe zestawu NARZĘDZI MRTK. Ten profil można znaleźć w obszarze Profilu systemu wejściowego Ustawienia.
Zdarzenia gestów
Zdarzenia gestów 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. Produkowane przez urządzenie HoloLens w celu informowania o:cumulativeDelta
zdarzenia manipulacjinormalizedOffset
zdarzenia nawigacji
Quaternion
- Gest rotacji 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":
- Naciśnij blokadę:
- rozpocznij manipulowanie
- Przytrzymaj naciśnięcie poza HoldStartDuration:
- uruchamianie blokady
- Naciśnij wydanie:
- ukończ blokadę
- kompletne manipulowanie
- Naciśnij blokadę:
"Przenieś":
- Naciśnij blokadę:
- rozpocznij manipulowanie
- Przytrzymaj naciśnięcie poza HoldStartDuration:
- uruchamianie blokady
- Przenieś rękę poza element NavigationStartThreshold:
- anuluj blokadę
- Uruchamianie nawigacji
- Naciśnij wydanie:
- kompletne manipulowanie
- ukończ nawigację
- Naciśnij blokadę:
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 wizualizacji zdarzeń gestów za pośrednictwem obiektów GameObjects. Funkcje programu obsługi zmieniają kolor obiektów wskaźnika i wyświetlają ostatnie zarejestrowane zdarzenie w obiektach tekstowych w scenie.