Szemkövető adatok elérése Unity-szkriptben – MRTK2

Ez a cikk feltételezi, hogy a szemkövetés mrTK-jelenetben való beállításának megértéséhez van értője (lásd: Alapszintű MRTK beállítás a szemkövetés használatához). A szemkövető adatok monobehaviour szkriptben való elérése egyszerű! Egyszerűen használja a CoreServices.InputSystem.EyeGazeProvider parancsot.

IMixedRealityEyeGazeProvider

Az MRTK szemkövetési konfigurációja az IMixedRealityEyeGazeProvider interfészen keresztül van konfigurálva. A CoreServices.InputSystem.EyeGazeProvider használatával az eszközkészletben futtatáskor regisztrált alapértelmezett tekintetszolgáltatói implementáció érhető el. A hasznos tulajdonságai EyeGazeProvider az alábbiakban olvashatók.

  • IsEyeTrackingEnabled: Igaz, ha a felhasználó úgy van kiválasztva, hogy szemkövetést használ a tekintethez.

  • IsEyeCalibrationValid: Azt jelzi, hogy a felhasználó szemkövető kalibrációja érvényes-e vagy sem. Null értéket ad vissza, ha az érték még nem kapott adatokat a szemkövető rendszertől. Érvénytelen lehet, mert a felhasználó kihagyta a szemkövetési kalibrációt.

  • IsEyeTrackingEnabledAndValid: Azt jelzi, hogy a jelenlegi szemkövető adatokat használták-e a tekintethez.

  • IsEyeTrackingDataValid: Igaz, ha a szemkövetési adatok elérhetők. Előfordulhat, hogy a túllépett időtúllépés miatt nem érhető el (a felhasználónak azonban pislognia kell), vagy a nyomkövetési hardver vagy engedélyek hiánya miatt. Tekintse meg a hiányzó szemkalibráló értesítési mintát , amely bemutatja, hogyan állapítható meg, hogy a felhasználó szemkalibrált-e, és hogyan jeleníthet meg egy megfelelő értesítést.

  • GazeOrigin: A tekintet sugarának eredete. Vegye figyelembe, hogy ez visszaadja a fej tekintetének eredetét, ha az "IsEyeGazeValid" hamis.

  • GazeDirection: Iránya a tekintet sugara. Ez visszaadja a fej tekintetének irányát, ha az "IsEyeGazeValid" hamis.

  • HitInfo, HitPosition, HitNormal stb.: Információk a jelenleg megtekintett célról. IsEyeGazeValid Ha hamis, akkor ez a felhasználó fejnézetén fog alapulni.

Példák a CoreServices.InputSystem.EyeGazeProvider használatára

Íme egy példa a FollowEyeGaze.cs fájlból:

  • A felhasználó által megtekintett hologram pontjának lekérése:
// Show the object at the hit position of the user's eye gaze ray with the target.
gameObject.transform.position = CoreServices.InputSystem.EyeGazeProvider.HitPosition;
  • Vizualizációs objektum megjelenítése rögzített távolságra attól a helytől, ahol a felhasználó jelenleg keresi:
// 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;

Lásd még