Girişi Gaze
Karma gerçeklik uygulamalarında giriş, kullanıcılarınızın neleri öğrendikleridir. Cihazınızdaki gözle bulunan göz izleme kameraları, gerçek zamanlı olmayan bir dünya alanındaki ışınlarla eşleşiyorsa, kullanıcının görüş alanı verileri kullanılabilir hale gelir. Gaze, hem planlar hem de C++ ' da kullanılabilir ve nesne etkileşimi, yol bulma ve kamera denetimleri gibi çeşitli mekanizması için temel bir özelliktir.
Göz izlemeyi etkinleştirme
- Project Ayarlar HoloLensiçin, gaze giriş özelliğini etkinleştirin:

- Yeni bir aktör oluşturun ve sahneye ekleyin
Not
gerçek olmayan HoloLens göz izleme, her iki gözde yalnızca tek bir gaze ray 'a sahiptir. İki ışını gerektiren Stereoscopic izleme desteklenmez.
Göz izlemeyi kullanma
İlk olarak, cihazınızın IsEyeTrackerConnected işleviyle göz izlemeyi destekleyip desteklemediğini kontrol edin. İşlev true değerini döndürürse, Kullanıcı gözlerinizin geçerli çerçevede nerede bakılabileceği bulmak için GetGazeData çağırın:

Not
İzleme noktası ve güvenirlik değeri HoloLens kullanılamaz.
Kullanıcılarınızın tam olarak nerede bakılabileceği hakkında bilgi edinmek için bir satır izlemede Gaze kaynağını ve yönünü kullanın. Gaze değeri, Gaze kaynağından başlayan ve kaynak ve Gaze yönü satır izleme uzaklığına çarpılarak bir vektördür:

Baş yön alma
Ayrıca, kullanıcının kafasının yönünü göstermek için baş takılmış ekran (HMD) döndürme işlemini de kullanabilirsiniz. Kullanıcıların baş yönünü, daha fazla giriş özelliğini etkinleştirmeden elde edebilirsiniz, ancak size hiçbir göz izleme bilgisi almazsınız. Doğru çıkış verilerini almak için bir as World bağlamı olarak şema öğesine bir başvuru ekleyin:
Not
HMD verilerinin alınması yalnızca Real 4,26 ve üzeri sürümlerde kullanılabilir.

C++ kullanma
- Oyunun Build. cs dosyasında Publicdependencymodulenames listesine Eyetracker ekleyin:
PublicDependencyModuleNames.AddRange(
new string[] {
"Core",
"CoreUObject",
"Engine",
"InputCore",
"EyeTracker"
});
- Dosya/yeni C++ sınıfında, Eyetracker adlı yeni bir c++ aktör oluşturun
- Visual Studio bir çözüm, yeni eyetracker sınıfını açar. Yeni EyeTracker aktöri ile gerçek olmayan oyunu açmak için derleyin ve çalıştırın. Aktör penceresinde "EyeTracker" araması yapın ve bunu projeye eklemek için dosyayı oyun penceresine sürükleyip bırakın:

- Eyetracker. cpp' de, Eyetrackerfunctionlibraryve drawhata ayıklama ghelpopiçineklemeleri ekleyin:
#include "EyeTrackerFunctionLibrary.h"
#include "DrawDebugHelpers.h"
Herhangi bir Gaze verisi almaya çalışmadan önce cihazınızın Uıeyetrackerfunctionlibrary:: IsEyeTrackerConnected ile göz izlemeyi destekleyip desteklemediğini denetleyin. Göz izleme destekleniyorsa, Uıeyetrackerfunctionlibrary:: GetGazeDataöğesinden bir hat izlemesi için bir ışın başlangıcını ve bitişini bulun. Buradan, herhangi bir Ray isabet sonucunu ayıklamak için bir Gaze vektörü oluşturabilir ve içeriğini Linetkcesingtabychannel ' a geçirebilirsiniz:
void AEyeTracker::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
if(UEyeTrackerFunctionLibrary::IsEyeTrackerConnected())
{
FEyeTrackerGazeData GazeData;
if(UEyeTrackerFunctionLibrary::GetGazeData(GazeData))
{
FVector Start = GazeData.GazeOrigin;
FVector End = GazeData.GazeOrigin + GazeData.GazeDirection * 100;
FHitResult Hit Result;
if (GWorld->LineTraceSingleByChannel(HitResult, Start, End, ECollisionChannel::ECC_Visiblity))
{
DrawDebugCoordinateSystem(GWorld, HitResult.Location, FQuat::Identity.Rotator(), 10);
}
}
}
}
Sonraki geliştirme kontrol noktası
Belirlediğimiz gerçek zamanlı olmayan geliştirme yolculuğunu takip ediyorsanız, MRTK çekirdek oluşturma bloklarını araştırırken Orta ölçekli olursunuz. Buradan, sonraki yapı bloğuna devam edebilirsiniz:
Ya da karma gerçeklik platformu özelliklerine ve API 'Lerine atlayın:
Dilediğiniz zaman gerçek zamanlı olmayan geliştirme kontrol noktalarına dönebilirsiniz.