Acessando dados de acompanhamento ocular em seu script do Unity — MRTK2

Este artigo pressupõe que se tenha noções básicas sobre como configurar o acompanhamento ocular em uma cena do MRTK (consulte Configuração básica do MRTK para usar o acompanhamento ocular). Acessar dados de acompanhamento ocular em um script MonoBehaviour é fácil! Basta usar CoreServices.InputSystem.EyeGazeProvider.

IMixedRealityEyeGazeProvider

A configuração de acompanhamento ocular no MRTK é configurada por meio da IMixedRealityEyeGazeProvider interface . O uso de CoreServices.InputSystem.EyeGazeProvider fornece a implementação padrão do provedor de foco registrado no kit de ferramentas em runtime. As propriedades úteis do EyeGazeProvider são descritas abaixo.

  • IsEyeTrackingEnabled: True se o usuário tiver selecionado usar o rastreamento ocular para foco.

  • IsEyeCalibrationValid: indica se a calibragem de acompanhamento ocular do usuário é válida ou não. Ele retornará 'null', se o valor ainda não tiver recebido dados do sistema de acompanhamento ocular. Pode ser inválido, pois o usuário pulou a calibragem de rastreamento ocular.

  • IsEyeTrackingEnabledAndValid: indica se os dados atuais de rastreamento ocular foram usados no momento para foco.

  • IsEyeTrackingDataValid: True se os dados de rastreamento ocular estiverem disponíveis. Ele pode estar indisponível devido ao tempo limite excedido (deve ser robusto para o usuário piscando porém) ou falta de controle de hardware ou permissões. Confira nosso exemplo de notificação de calibragem ocular ausente que explica como detectar se um usuário está calibrado com os olhos e mostrar uma notificação apropriada.

  • GazeOrigin: origem do raio de foco. Observe que isso retornará a origem do foco da cabeça se 'IsEyeGazeValid' for false.

  • GazeDirection: direção do raio de foco. Isso retornará a direção do foco da cabeça se 'IsEyeGazeValid' for false.

  • HitInfo, HitPosition, HitNormal etc.: informações sobre o alvo atualmente voltado para o destino. Novamente, se IsEyeGazeValid for false, isso será baseado no foco da cabeça do usuário.

Exemplos para usar CoreServices.InputSystem.EyeGazeProvider

Aqui está um exemplo de FollowEyeGaze.cs:

  • Obtenha o ponto de um holograma que o usuário está olhando:
// Show the object at the hit position of the user's eye gaze ray with the target.
gameObject.transform.position = CoreServices.InputSystem.EyeGazeProvider.HitPosition;
  • Mostrando um ativo visual a uma distância fixa de onde o usuário está procurando no momento:
// If no target is hit, show the object at a default distance along the gaze ray.
gameObject.transform.position =
CoreServices.InputSystem.EyeGazeProvider.GazeOrigin +
CoreServices.InputSystem.EyeGazeProvider.GazeDirection.normalized * defaultDistanceInMeters;

Confira também