Gester – MRTK2

Gester är indatahändelser baserade på mänskliga händer. Det finns två typer av enheter som genererar gestindatahändelser i MRTK:

Båda dessa indatakällor använder profilen Gestinställningar för att översätta Unitys Touch- respektive Gesture-händelser till MRTK:s indataåtgärder. Den här profilen finns under profilen Inställningar för indatasystem .

Gestprofil

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 en exempelimplementering av en gesthändelsehanterare.

När du implementerar den allmänna versionen kan händelserna OnGestureCompleted och OnGestureUpdated ta emot typifierade data av följande typer:

  • Vector2 - 2D-position gest. Produceras av pekskärmar för att informera om deras deltaPosition.
  • Vector3 - 3D-position gest. Producerad av HoloLens för att informera om:
  • Quaternion - 3D-rotationsgest. Tillgänglig för anpassade indatakällor men som för närvarande inte produceras av någon av de befintliga.
  • MixedRealityPose - Kombinerad 3D-position/rotationsgest. Tillgänglig för anpassade indatakällor men som för närvarande inte produceras av någon av de befintliga.

Händelseordning

Det finns två huvudkedjor av händelser, beroende på användarindata:

  • "Hold":

    1. Håll ned tryck:
      • starta manipulering
    2. Håll ned tryckningen bortom HoldStartDuration:
      • starta Undantag
    3. Släpp tryck:
      • fullständigt undantag
      • fullständig manipulation
  • "Flytta":

    1. Håll ned tryck:
      • starta manipulering
    2. Håll ned tryckningen bortom HoldStartDuration:
      • starta Undantag
    3. Flytta handen bortom NavigeringStartThreshold:
      • avbryt undantag
      • starta navigering
    4. Släpp tryck:
      • fullständig manipulation
      • fullständig navigering

Exempelscen

Scenen HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) visar hur du använder pekarresultatet för att skapa ett objekt på träffplatsen.

Skriptet GestureTester (Assets/MRTK/Examples/Demos/HandTracking/Script) är ett exempel på implementering för att visualisera gesthändelser via GameObjects. Hanterarfunktionerna ändrar färgen på indikatorobjekt och visar den senast inspelade händelsen i textobjekt i scenen.