Partilhar via


Aceder a dados de controlo ocular no script do Unity — MRTK2

Este artigo pressupõe que se compreende a configuração do controlo ocular numa cena do MRTK (veja Configuração básica do MRTK para utilizar o controlo ocular). Aceder a dados de controlo ocular num script MonoBehaviour é fácil! Basta utilizar CoreServices.InputSystem.EyeGazeProvider.

IMixedRealityEyeGazeProvider

A configuração de controlo ocular no MRTK é configurada através da IMixedRealityEyeGazeProvider interface. A utilização de CoreServices.InputSystem.EyeGazeProvider fornece a implementação do fornecedor de olhar predefinida registada no toolkit no runtime. As propriedades úteis do EyeGazeProvider estão descritas abaixo.

  • IsEyeTrackingEnabled: verdadeiro se o utilizador tiver selecionado utilizar o controlo ocular para olhar.

  • IsEyeCalibrationValid: indica se a calibragem de controlo ocular do utilizador é válida ou não. Devolve "nulo", se o valor ainda não tiver recebido dados do sistema de controlo ocular. Pode ser inválido, porque o utilizador ignorou a calibragem do controlo ocular.

  • IsEyeTrackingEnabledAndValid: indica se os dados de controlo ocular atuais foram atualmente utilizados para olhar.

  • IsEyeTrackingDataValid: verdadeiro se estiverem disponíveis dados de controlo ocular. Pode estar indisponível devido ao tempo limite excedido (deve ser robusto para o utilizador a piscar) ou à falta de hardware ou permissões de controlo. Veja o nosso exemplo de notificação de calibragem ocular em falta que explica como detetar se um utilizador está calibrado para os olhos e para mostrar uma notificação adequada.

  • GazeOrigin: Origem do raio de olhar. Tenha em atenção que isto devolverá a origem do olhar da cabeça se "IsEyeGazeValid" for falso.

  • GazeDirection: Direção do raio de olhar. Isto devolverá a direção do olhar da cabeça se "IsEyeGazeValid" for falso.

  • HitInfo, HitPosition, HitNormal, etc.: Informações sobre o alvo atualmente contemplado. Mais uma vez, se IsEyeGazeValid for falso, será baseado no olhar da cabeça do utilizador.

Exemplos para utilizar CoreServices.InputSystem.EyeGazeProvider

Eis um exemplo de FollowEyeGaze.cs:

  • Obtenha o ponto de um holograma que o utilizador está a ver:
// Show the object at the hit position of the user's eye gaze ray with the target.
gameObject.transform.position = CoreServices.InputSystem.EyeGazeProvider.HitPosition;
  • A mostrar um elemento visual a uma distância fixa de onde o utilizador está atualmente a procurar:
// 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;

Ver também