Göz alıcı

Göz bildirimlerinin ekran görüntüsü

Genel Bakış

Göz izleme, uygulama deneyiminizin temel parçalarından biri ise kullanıcının göz gözle yapılan izlemenin geçerli olduğundan emin olmak da istenebilirsiniz. Geçersiz olması için temel neden, kullanıcının cihazı cihaza koyarak göz izleme ayarlamayı atlamayı seçmiş olmasıdır.

Bu sayfa şunları kapsar:

  • Bir kullanıcının göz ayarlaması olduğunu algılamayı açıklar
  • Kullanıcıya göz göz atması talimatı veren bir kullanıcı bildirimini tetiklemeye yönelik bir örnek sağlar
    • Göz düzeltmesi geçerli olursa bildirimi otomatik olarak yok edin
    • Kullanıcı ayarlamadan devam etmek seçerse bildirimi el ile kaldırma

Göz ayarlama durumunu algılama

MRTK'daki göz izleme yapılandırması arabirimi aracılığıyla IMixedRealityEyeGazeProvider yapılandırılır.

CoreServices.InputSystem.EyeSystemEProvider'ın kullanımı çalışma zamanında araç setine kayıtlı varsayılan bakış sağlayıcı uygulamasını sağlar. IMixedRealityEyeGazeProvider.IsEyeGazeValid , göz bool? izleyiciden henüz bir bilgi yoksa null değerini döndürür. Veriler alındıktan sonra kullanıcının göz izleme izinin geçerli veya geçersiz olduğunu belirtmek için true veya false döndürür.

Örnek göz bildirim bildirimi - adım adım

  1. MRTK göz izleme örnek paketini açın (Assets/MRTK/Examples/Demos/EyeTracking)

  2. EyeTrackingDemo-00-RootScene.unity sahneyi yükleme

  3. EyeCalibrationChecker'a göz at:

    • Bu sahnede, geçerli kullanıcının EyeCalibrationCheckeroyun nesnesi altında ayarlanmış olup olmadığını algılamak için zaten bir örneğimiz vardır. Yalnızca birkaç metin tiresini temel alır ve bildirimi karıştıran ve dışarı doğru bazı ek tetikleyiciler vardır. Bu, etkinleştirme sırasında boyutunu ve opaklığını yavaş artırmayı içerir. Bildirim alındıktan sonra, yavaş yavaş boyutunu azaltacak ve soluk gelecektir.

    • EyeCalibrationChecker oyun nesnesine eklenenEyeCalibrationChecker betiği iki Unity Olayını gösterir:

      • OnEyeCalibrationDetected()
      • OnNoEyeCalibrationDetected()
    • Bu olaylar yalnızca ayarlama durumu değişirse tetiklenir. Bu nedenle, bir kullanıcı bildirimi silene kadar bildirimi yeniden göstermez

      • Uygulama yeniden başlatılır
      • Geçerli bir kullanıcı algılandı ve ardından yeni bir kullanıcı cihazı
    • Animasyonların ve olayların doğru şekilde tetiklenip tetiklenmediylerini test etmek için EyeCalibrationChecker betiği bir bool editorTestUserIsCalibrated bayraka sahip olur. Örneğin Unity Düzenleyicisi'nde çalıştırabilirsiniz:

      1. Ayarlama durumu true yerine false olarak değiştinden sonra bildirimin otomatik olarak aç isteyip olmadığı
      2. Durum false yerine true olarak değişirse bildirimin otomatik olarak yeniden kapanır mı?
    private bool? prevCalibrationStatus = null;
    ...

   void Update()
   {
      // Get the latest calibration state from the EyeGazeProvider
      bool? calibrationStatus = CoreServices.InputSystem?.EyeGazeProvider?.IsEyeCalibrationValid;

      ...

      if (calibrationStatus != null)
      {
         if (prevCalibrationStatus != calibrationStatus)
         {
            if (calibrationStatus == false)
            {
               OnNoEyeCalibrationDetected.Invoke();
            }
         else
         {
            OnEyeCalibrationDetected.Invoke();
         }

         prevCalibrationStatus = calibrationStatus;
      }
   }

Ayrıca bkz.