Tekintet – MRTK2
A tekintet a bemenet egy formája, amely a felhasználó által keresett környezet alapján kommunikál a világgal. A tekintet két különböző ízben létezik
Fej tekintete
Ez a tekintettípus azon az irányon alapul, amelyet a fej/kamera néz. A fej tekintete aktív olyan rendszereken, amelyek nem támogatják a tekintetet, vagy olyan esetekben, amikor a hardver támogatja a tekintetet, de a megfelelő engedélyek és beállítás nem lett végrehajtva.
A fej tekintetét általában a HoloLens 1 stílus interakcióihoz társítják, amelyek során az objektumot úgy tekintik meg, hogy a holografikus keret középpontjába helyezik, majd végrehajtják a levegőcsapás kézmozdulatát.
Szem tekintete
Az ilyen típusú tekintet azon alapul, hogy a felhasználó szeme hol néz ki. A szem tekintete csak olyan rendszereken van jelen, amelyek támogatják a szemkövetést. A szemnézés használatáról további információt a szemkövető dokumentációban talál.
GazeProvider
A tekintet funkcióját (fej és szem) a GazeProvider biztosítja. Ez a szolgáltató a bemeneti rendszerprofil Pointer (Mutató ) szakaszában konfigurálható:
A többi bemeneti forráshoz hasonlóan a tekintetszolgáltató is egy mutató használatával kommunikál a jelenet objektumaival (a mutatókkal kapcsolatos információkért tekintse meg ezt a dokumentumot).
A tekintetszolgáltató esetében a mutató implementálása a profilon keresztül InternalGazePointer
történik, és nincs konfigurálva.
A GazeProvider részvényt lecserélheti egy másik implementációra úgy, hogy módosítja a Gaze Provider Type típust , hogy egy másik osztályra hivatkozzon, amely az IMixedRealityGazeProvidert és az IMixedRealityEyeGazeProvidert implementálja. Általában ajánlott a GazeProvider részvényt használni (és a hibák keresésekor felmerülő problémák bejelentését), mivel a GazeProvider újra implementálása nem triviális.
Alternatív platform által biztosított tekintet jelent
Alapértelmezés szerint az MRTK GazeProvider a kamera keretének középpontját használja a tekintet forrásaként. Egyes platformok, például a HoloLens 2 Windows Mixed Reality, alternatív tekintetet biztosítanak. Ezt a Use Head Gaze Override
tekintet beállításaiban található beállítással lehet kezelni. Ha engedélyezve van, a rendszer az alternatív tekintet felülbírálását fogja használni. Ha le van tiltva, a rendszer az alapértelmezett keret középen lévő forrást használja. Pontosabban a HoloLens 2 esetében a tekintet szöge több fokkal lesz emelve, hogy figyelembe vegyék a felhasználói kényelmet a fejük célzáshoz való használata során.
Használat
Az aktuális tekintet céljának lekérése
Ez a minta bemutatja, hogyan szerezheti be a felhasználó tekintete által megcélzott aktuális játékobjektumot.
void LogCurrentGazeTarget()
{
if (CoreServices.InputSystem.GazeProvider.GazeTarget)
{
Debug.Log("User gaze is currently over game object: "
+ CoreServices.InputSystem.GazeProvider.GazeTarget)
}
}
Az aktuális tekintet irányának és eredetének lekérése
Ez a minta bemutatja, hogyan szerezheti be a vektor3-at, amely a felhasználói tekintet irányát és a forrást (az irány irányát) jelöli.
void LogGazeDirectionOrigin()
{
Debug.Log("Gaze is looking in direction: "
+ CoreServices.InputSystem.GazeProvider.GazeDirection);
Debug.Log("Gaze origin is: "
+ CoreServices.InputSystem.GazeProvider.GazeOrigin);
}