Blickindata
Blickinmatning i appar med mixad verklighet handlar om att ta reda på vad användarna tittar på. När ögonspårningskamerorna på enheten överensstämmer med bilder i Unreals världrymd blir användarens synområdesdata tillgängliga. Blick kan användas i både skisser och C++, och är en grundläggande funktion för mekanik som objektinteraktion, sätt att hitta och kamerakontroller.
Aktivera ögonspårning
- I Project Inställningar HoloLensdu funktionen Blickindata:

- Skapa en ny skådespelare och lägg till den i din scen
Anteckning
HoloLens ögonspårning i Unreal har bara en enda blick ray för båda ögonen. Stereospårning, som kräver två ljud, stöds inte.
Använda ögonspårning
Kontrollera först att enheten stöder ögonspårning med funktionen IsTrackTrackerConnected. Om funktionen returnerar true anropar du GetGazeData för att ta reda på var användarens ögon tittar på i den aktuella ramen:

Anteckning
Korrigeringspunkten och konfidensvärdet är inte tillgängliga på HoloLens.
Använd blickens ursprung och riktning i en linjespårning för att ta reda på exakt var användarna letar. Blickvärdet är en vektor som börjar vid blickens ursprung och slutar på ursprunget plus blickriktningen multiplicerat med linjespårningsavståndet:

Hämta huvudorientering
Du kan också använda rotationen av den huvudmonterade skärmen (HMD) för att representera riktningen på användarens huvud. Du kan få användarnas huvudriktning utan att aktivera funktionen Blickinmatning, men du får ingen information om ögonspårningen. Lägg till en referens till skissen som världskontext för att hämta rätt utdata:
Anteckning
Att hämta HMD-data är endast tillgängligt i Unreal 4.26 och framåt.

Använda C++
- I spelets build.cs-fil lägger du till EyeTracker i listan PublicDependencyModuleNames:
PublicDependencyModuleNames.AddRange(
new string[] {
"Core",
"CoreUObject",
"Engine",
"InputCore",
"EyeTracker"
});
- I File/ New C++ Class (Fil/ny C++-klass)skapar du en ny C++-aktör med namnet EyeTracker
- En Visual Studio-lösning öppnar den nya EyeTracker-klassen. Skapa och kör för att öppna Unreal-spelet med den nya EyeTracker-skådespelaren. Sök efter "EyeTracker" i place actors-fönstret och dra och släpp klassen i spelfönstret för att lägga till den i projektet:

- I EyeTracker.cpplägger du till includes för EyeTrackerFunctionLibraryoch DrawDebugHelpers:
#include "EyeTrackerFunctionLibrary.h"
#include "DrawDebugHelpers.h"
Kontrollera att enheten stöder ögonspårning med UTrackTrackerFunctionLibrary::IsTrackerConnected innan du försöker hämta några blickdata. Om ögonspårning stöds hittar du början och slutet av en ray för en linjespårning från UTrackTrackerFunctionLibrary::GetGazeData. Därifrån kan du skapa en blickvektor och skicka dess innehåll till LineTraceSingleByChannel för att felsöka eventuella resultat från en ray-träff:
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);
}
}
}
}
Kontrollpunkt för nästa utveckling
Om du följer den Unreal-utvecklingsresa som vi har tagit fram är du i färd med att utforska MRTK-kärnbyggstenarna. Härifrån kan du fortsätta till nästa byggblock:
Eller gå Mixed Reality plattformsfunktioner och API:er:
Du kan alltid gå tillbaka till kontrollpunkterna för Unreal-utveckling när som helst.