Partilhar via


Gestos — MRTK2

Os gestos são eventos de entrada baseados em mãos humanas. Existem dois tipos de dispositivos que geram eventos de entrada por gestos no MRTK:

  • Dispositivos Windows Mixed Reality, como HoloLens. Isto descreve movimentos de compressão ("Air Tap") e gestos de tocar e segurar.

    Para obter mais informações sobre gestos HoloLens, consulte a documentação do Windows Mixed Reality Gestures.

    WindowsMixedRealityDeviceManager envolve o Unity XR. WSA. Input.GestureRecognizer para consumir eventos de gestos do Unity a partir de dispositivos HoloLens.

  • Dispositivos com ecrã táctil.

    UnityTouchController envolve a classe Unity Touch que suporta telas sensíveis ao toque físicas.

Ambas as fontes de entrada usam o perfil Configurações de gestos para traduzir os eventos Toque e Gesto do Unity, respectivamente, em Ações de entrada do MRTK. Este perfil pode ser encontrado no perfil Configurações do sistema de entrada.

Perfil de gestos

Eventos de gestos

Os eventos de gesto são recebidos implementando uma das interfaces do manipulador de gestos: IMixedRealityGestureHandler ou IMixedRealityGestureHandler<TYPE> (consulte a tabela de manipuladores de eventos).

Consulte Cena de exemplo para obter um exemplo de implementação de um manipulador de eventos de gesto.

Ao implementar a versão genérica, os eventos OnGestureCompleted e OnGestureUpdated podem receber dados digitados dos seguintes tipos:

  • Vector2 - Gesto de posição 2D. Produzido por telas sensíveis ao toque para informar sobre o seu deltaPosition.
  • Vector3 - Gesto de posição 3D. Produzido por HoloLens para informar sobre:
  • Quaternion - Gesto de rotação 3D. Disponível para fontes de entrada personalizadas, mas atualmente não produzidas por nenhuma das existentes.
  • MixedRealityPose - Gesto combinado de posição/rotação 3D. Disponível para fontes de entrada personalizadas, mas atualmente não produzidas por nenhuma das existentes.

Ordem dos eventos

Existem duas cadeias principais de eventos, dependendo da entrada do usuário:

  • "Esperar":

    1. Segure a torneira:
      • iniciar Manipulação
    2. Segure o toque além de HoldStartDuration:
      • iniciar Hold
    3. Torneira de lançamento:
      • Retenção completa
      • Manipulação completa
  • "Mover":

    1. Segure a torneira:
      • iniciar Manipulação
    2. Segure o toque além de HoldStartDuration:
      • iniciar Hold
    3. Vá além do NavigationStartThreshold:
      • cancelar Hold
      • iniciar navegação
    4. Torneira de lançamento:
      • Manipulação completa
      • Navegação completa

Cena de exemplo

A cena HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) mostra como usar o ponteiro Result para gerar um objeto no local atingido.

O GestureTester script (Assets/MRTK/Examples/Demos/HandTracking/Script) é um exemplo de implementação para visualizar eventos de gestos via GameObjects. As funções do manipulador alteram a cor dos objetos indicadores e exibem o último evento gravado em objetos de texto na cena.