Compartilhar via


Gestos — MRTK2

Gestos são eventos de entrada baseados em mãos humanas. Há dois tipos de dispositivos que geram eventos de entrada de gesto no MRTK:

  • Dispositivos Windows Mixed Reality, como HoloLens. Isso descreve movimentos de pinça ("Air Tap") e gestos de tocar e segurar.

    Para obter mais informações sobre gestos do 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 de tela sensível ao toque.

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

Ambas as fontes de entrada usam o perfil Configurações de Gesto para converter os eventos Touch e Gesture do Unity, respectivamente, em Ações de Entrada do MRTK. Esse perfil pode ser encontrado no perfil Configurações do Sistema de Entrada.

Perfil do gesto

Eventos gestuais

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 de 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 produzido por nenhuma das existentes.
  • MixedRealityPose - Gesto combinado de posição/rotação 3D. Disponível para fontes de entrada personalizadas, mas atualmente não produzido por nenhuma das existentes.

Ordem dos eventos

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

  • "Segurar":

    1. Segure a torneira:
      • iniciar Manipulação
    2. Segure o toque além de HoldStartDuration:
      • iniciar Hold
    3. Toque de solte:
      • 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 de NavigationStartThreshold:
      • cancelar Retenção
      • iniciar Navegação
    4. Toque de solte:
      • 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 de ocorrência.

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