Acessando dados de acompanhamento ocular no script do Unity — MRTK2

Este artigo pressupõe que se tenha compreensão para configurar o acompanhamento ocular em uma cena do MRTK (consulte a 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 no runtime. Propriedades úteis do EyeGazeProvider descrito abaixo.

  • IsEyeTrackingEnabled: True se o usuário tiver selecionado usar o acompanhamento ocular para olhar.

  • 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 são usados atualmente 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 nos olhos e mostrar uma notificação apropriada.

  • GazeOrigin: Origem do raio do olhar. 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 olhar da cabeça se 'IsEyeGazeValid' for false.

  • HitInfo, HitPosition, HitNormal etc.: informações sobre o destino atualmente voltado. Novamente, se IsEyeGazeValid for falso, isso será baseado no olhar de 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;

Veja também