Gester – MRTK2
Gester är indatahändelser baserade på mänskliga händer. Det finns två typer av enheter som genererar gestindatahändelser i MRTK:
Windows Mixed Reality-enheter som HoloLens. Detta beskriver nyprörelser ("Air Tap") och tap-and-hold gester.
Mer information om HoloLens-gester finns i dokumentationen om Windows Mixed Reality Gestures.
WindowsMixedRealityDeviceManager
omsluter Unity XR. WSA. Input.GestureRecognizer för att använda Unitys gesthändelser från HoloLens-enheter.Pekskärmsenheter.
UnityTouchController
omsluter Unity Touch-klassen som stöder fysiska pekskärmar.
Båda dessa indatakällor använder profilen Gest Inställningar för att översätta Unitys touch- respektive gesthändelser till MRTK:s indataåtgärder. Den här profilen finns under profilen Indatasystem Inställningar.
![Gestprofil](../images/input/gestureprofile.png?view=mrtkunity-2022-05)
Gesthändelser
Gesthändelser tas emot genom att implementera ett av gesthanterargränssnitten: IMixedRealityGestureHandler
eller IMixedRealityGestureHandler<TYPE>
(se tabell med händelsehanterare).
Se Exempelscen för ett exempel på implementering av en gesthändelsehanterare.
När du implementerar den allmänna versionen kan händelserna OnGestureCompleted och OnGestureUpdated ta emot typinskrivna data av följande typer:
Vector2
- 2D-positionsgest. Producerad av pekskärmar för att informera om derasdeltaPosition
.Vector3
- 3D-positionsgest. Producerad av HoloLens för att informera om:cumulativeDelta
av en manipulationshändelsenormalizedOffset
av en navigeringshändelse
Quaternion
- 3D-rotationsgest. Tillgänglig för anpassade indatakällor men inte för närvarande producerad av någon av de befintliga.MixedRealityPose
- Kombinerad 3D-position/rotationsgest. Tillgänglig för anpassade indatakällor men inte för närvarande producerad av någon av de befintliga.
Händelseordning
Det finns två huvudkedjor med händelser, beroende på användarens indata:
"Hold":
- Håll ned tryck:
- starta manipulation
- Håll ned tryckningen bortom HoldStartDuration:
- starta Undantag
- Släpp tryck:
- fullständigt undantag
- fullständig manipulering
- Håll ned tryck:
"Flytta":
- Håll ned tryck:
- starta manipulation
- Håll ned tryckningen bortom HoldStartDuration:
- starta Undantag
- Flytta handen bortom NavigeringStartThreshold:
- avbryt undantag
- starta Navigering
- Släpp tryck:
- fullständig manipulering
- fullständig navigering
- Håll ned tryck:
Exempelscen
Scenen HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) visar hur du använder pekarresultatet för att skapa ett objekt på träffplatsen.
GestureTester
Skriptet (Assets/MRTK/Examples/Demos/HandTracking/Script) är ett exempel på implementering för att visualisera gesthändelser via GameObjects. Hanteringsfunktionerna ändrar färgen på indikatorobjekt och visar den senast inspelade händelsen i textobjekt i scenen.