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:

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

Gesture Profile

Eventos de gesto

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 a 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 tipados dos seguintes tipos:

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

Ordem dos eventos

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

  • "Hold":

    1. Segure o toque:
      • iniciar manipulação
    2. Mantenha o toque além de HoldStartDuration:
      • iniciar a retenção
    3. Toque na versão:
      • Retenção completa
      • Manipulação completa
  • "Mover":

    1. Segure o toque:
      • iniciar manipulação
    2. Mantenha o toque além de HoldStartDuration:
      • iniciar a retenção
    3. Mova a mão para além de NavigationStartThreshold:
      • cancelar Retenção
      • iniciar navegação
    4. Toque na versão:
      • Manipulação completa
      • Navegação completa

Cena de exemplo

A cena HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) mostra como usar o resultado do ponteiro 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 por meio de GameObjects. As funções do manipulador alteram a cor dos objetos indicadores e exibem o último evento registrado em objetos de texto na cena.