Accesso ai dati di rilevamento oculare nello script Unity - MRTK2

Questo articolo presuppone che si abbia una comprensione per configurare il rilevamento oculare in una scena MRTK (vedere Configurazione MRTK di base per l'uso del rilevamento oculare). L'accesso ai dati di rilevamento oculare in uno script MonoBehaviour è facile! Usare semplicemente CoreServices.InputSystem.EyeGazeProvider.

IMixedRealityEyeGazeProvider

La configurazione del rilevamento oculare in MRTK è configurata tramite l'interfaccia IMixedRealityEyeGazeProvider . L'uso di CoreServices.InputSystem.EyeGazeProvider fornisce l'implementazione predefinita del provider di sguardo registrato nel toolkit in fase di esecuzione. Le proprietà utili dell'oggetto EyeGazeProvider sono descritte di seguito.

  • IsEyeTrackingEnabled: True se l'utente ha selezionato per usare il rilevamento degli occhi per lo sguardo.

  • IsEyeCalibrationValid: indica se la calibrazione del rilevamento oculare dell'utente è valida o meno. Restituisce "Null", se il valore non ha ancora ricevuto dati dal sistema di rilevamento oculare. Può non essere valido, perché l'utente ha ignorato la calibrazione del rilevamento oculare.

  • IsEyeTrackingEnabledAndValid: indica se i dati di rilevamento degli occhi correnti sono attualmente usati per lo sguardo.

  • IsEyeTrackingDataValid: True se sono disponibili dati di rilevamento oculare. Potrebbe non essere disponibile a causa del timeout superato (deve essere affidabile per l'utente che lampeggia anche se) o mancanza di hardware o autorizzazioni di rilevamento. Vedere l'esempio di notifica di calibrazione oculare mancante che spiega come rilevare se un utente è calibrato dall'occhio e per visualizzare una notifica appropriata.

  • GazeOrigin: Origine del raggio dello sguardo. Si noti che questo restituirà l'origine dello sguardo della testa se 'IsEyeGazeValid' è false.

  • GazeDirection: Direzione del raggio di sguardo. Verrà restituita la direzione dello sguardo della testa se 'IsEyeGazeValid' è false.

  • HitInfo, HitPosition, HitNormal e così via: informazioni sull'oggetto attualmente guardato alla destinazione. Anche in questo caso, se IsEyeGazeValid è false, questo sarà basato sullo sguardo della testa dell'utente.

Esempi per l'uso di CoreServices.InputSystem.EyeGazeProvider

Ecco un esempio di FollowEyeGaze.cs:

  • Ottenere il punto di un ologramma che l'utente sta esaminando:
// Show the object at the hit position of the user's eye gaze ray with the target.
gameObject.transform.position = CoreServices.InputSystem.EyeGazeProvider.HitPosition;
  • Visualizzazione di un asset visivo a una distanza fissa da cui l'utente sta attualmente esaminando:
// 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;

Vedi anche