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;