Share via


Gestos: MRTK2

Los gestos son eventos de entrada basados en manos humanas. Hay dos tipos de dispositivos que generan eventos de entrada de gestos en MRTK:

  • Dispositivos Windows Mixed Reality como HoloLens. En este artículo se describen los movimientos de pellizca ("Pulsar aire") y los gestos de pulsación y suspensión.

    Para obtener más información sobre los gestos de HoloLens, consulte la documentación de gestos de Windows Mixed Reality.

    WindowsMixedRealityDeviceManager encapsula la XR de Unity. WSA. Input.GestureRecognizer para consumir los eventos de gestos de Unity desde dispositivos HoloLens.

  • Dispositivos de pantalla táctil.

    UnityTouchController ajusta la clase Unity Touch que admite pantallas táctiles físicas.

Ambos orígenes de entrada usan el perfil de Configuración gesto para traducir los eventos Touch y Gesture de Unity, respectivamente, en acciones de entrada de MRTK. Este perfil se puede encontrar en el perfil del sistema de entrada Configuración.

Perfil de gesto

Eventos de gestos

Los eventos de gestos se reciben mediante la implementación de una de las interfaces del controlador de gestos: IMixedRealityGestureHandler o IMixedRealityGestureHandler<TYPE> (consulte la tabla de controladores de eventos).

Vea Escena de ejemplo para obtener una implementación de ejemplo de un controlador de eventos de gestos.

Al implementar la versión genérica, los eventos OnGestureCompleted y OnGestureUpdated pueden recibir datos con tipo de los siguientes tipos:

  • Vector2 - Gesto de posición 2D. Producido por pantallas táctiles para informar de su deltaPosition.
  • Vector3 - Gesto de posición 3D. Generado por HoloLens para informar de:
  • Quaternion - Gesto de rotación 3D. Disponible para orígenes de entrada personalizados, pero no generados actualmente por ninguno de los existentes.
  • MixedRealityPose - Gesto combinado de posición/rotación 3D. Disponible para orígenes de entrada personalizados, pero no generados actualmente por ninguno de los existentes.

Orden de eventos

Hay dos cadenas principales de eventos, en función de la entrada del usuario:

  • "Hold":

    1. Mantenga pulsado:
      • iniciar manipulación
    2. Mantenga pulsado más allá de HoldStartDuration:
      • iniciar suspensión
    3. Pulsación de liberación:
      • suspensión completa
      • manipulación completa
  • "Mover":

    1. Mantenga pulsado:
      • iniciar manipulación
    2. Mantenga pulsado más allá de HoldStartDuration:
      • iniciar suspensión
    3. Mueva la mano más allá de NavigationStartThreshold:
      • cancelar suspensión
      • iniciar navegación
    4. Pulsación de liberación:
      • manipulación completa
      • navegación completa

Escena de ejemplo

La escena HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) muestra cómo usar el resultado del puntero para generar un objeto en la ubicación de posicionamiento.

El GestureTester script (Assets/MRTK/Examples/Demos/HandTracking/Script) es una implementación de ejemplo para visualizar eventos de gestos a través de GameObjects. Las funciones del controlador cambian el color de los objetos de indicador y muestran el último evento grabado en objetos de texto de la escena.