Pohled – MRTK2

Pohled je forma vstupu, která komunikuje se světem na základě toho, kde se uživatel dívá. Pohled existuje ve dvou různých příchutích.

Pohled hlavou

Tento typ pohledu je založen na směru, kterým se hlava nebo kamera dívá. Pohled hlavou je aktivní v systémech, které nepodporují pohled z očí, nebo v případech, kdy hardware může podporovat zrak, ale nebyla provedena správná sada oprávnění a nastavení .

Pohled hlavou je obvykle spojen s interakcemi ve stylu HoloLens 1, které zahrnují pohled na objekt tak, že ho umístíte do středu holografického rámečku a pak provedete gesto klepnutí vzduchem.

Pohled na oči

Tento typ pohledu závisí na tom, kam se uživatel dívá. Zrak je k dispozici pouze v systémech, které podporují sledování očí. Další podrobnosti o tom, jak používat zrakové pohledy, najdete v dokumentaci ke sledování očí.

GazeProvider

Funkce pohledu (hlava i oko) poskytuje GazeProvider. Tento zprostředkovatel je možné nakonfigurovat v části Ukazatel profilu vstupního systému:

Vstupní bod konfigurace pohledu

Stejně jako jiné zdroje vstupu i zprostředkovatel pohledu komunikuje s objekty ve scéně pomocí ukazatele (informace o ukazatelích najdete v tomto dokumentu). V případě poskytovatele pohledu je jeho ukazatel implementován prostřednictvím InternalGazePointer profilu a není nakonfigurován prostřednictvím profilu.

Je možné nahradit akcie GazeProvider alternativní implementací změnou typu zprostředkovatele gaze odkazovat na jinou třídu, která implementuje IMixedRealityGazeProvider a IMixedRealityEyeGazeProvider. Obecně se doporučuje použít akciový GazeProvider (a problémy s ukládáním při hledání chyb), protože opětovná implementace GazeProvider je netriviální.

Alternativní pohledové pozice poskytované platformou

Ve výchozím nastavení používá MRTK GazeProvider jako původ pohledu střed rámečku kamery. Některé platformy, například Windows Mixed Reality na HoloLens 2, poskytují alternativně definovaný pohled. To se spravuje prostřednictvím Use Head Gaze Override nastavení v nastavení pohledu. Pokud je tato možnost povolená, použije se alternativní přepsání pohledu. Pokud je tato možnost zakázaná, použije se výchozí počátek středu rámce. Konkrétně u HoloLens 2 bude úhel pohledu zvýšen o několik stupňů, aby se zohlednil uživatelský komfort při používání hlavy k cílení.

Využití

Jak získat aktuální cíl pohledu

Tato ukázka ukazuje, jak získat aktuální herní objekt, na který cílí pohled uživatele.

void LogCurrentGazeTarget()
{
    if (CoreServices.InputSystem.GazeProvider.GazeTarget)
    {
        Debug.Log("User gaze is currently over game object: "
            + CoreServices.InputSystem.GazeProvider.GazeTarget)
    }
}

Jak získat aktuální směr a původ pohledu

Tato ukázka ukazuje, jak získat Vektor3 představující směr pohledu uživatele a počátku (bod, ze kterého směr jde).

void LogGazeDirectionOrigin()
{
    Debug.Log("Gaze is looking in direction: "
        + CoreServices.InputSystem.GazeProvider.GazeDirection);

    Debug.Log("Gaze origin is: "
        + CoreServices.InputSystem.GazeProvider.GazeOrigin);
}