Fókuszpont a Unityben

Névtér:UnityEngine.XR.WSA
Típus: HolographicSettings

Használja a fókuszpontot , hogy a HoloLens egy tippet adjon arról, hogyan stabilizálhatja a jelenleg megjelenített hologramokat.

Ha a Unityben szeretné beállítani a fókuszpontot, azt minden képkockát be kell állítani a HolographicSettings.SetFocusPointForFrame() használatával. Ha a fókuszpont nincs beállítva egy kerethez, a rendszer az alapértelmezett stabilizációs síkot használja.

Megjegyzés

Alapértelmezés szerint az új Unity-projekteknél be van állítva a "Mélységi puffermegosztás engedélyezése" beállítás. Ezzel a beállítással egy modern asztali headseten vagy egy 2018. április Windows 10 i frissítéssel (RS4) vagy újabb verziót futtató HoloLens-en futó Unity-alkalmazás automatikusan elküldi a mélységi puffert a Windowsnak a hologram stabilitásának automatikus optimalizálásához anélkül, hogy az alkalmazás megad egy fókuszpontot:

  • Modern asztali headset esetén ez lehetővé teszi a képpontonkénti mélységalapú újraprojectiont.
  • A 2018. áprilisi vagy újabb frissítés Windows 10 futó HoloLensben ez elemzi a mélységi puffert, hogy automatikusan kiválaszthassa az optimális stabilizációs síkot.

Bármelyik megközelítésnek még jobb képminőséget kell biztosítania anélkül, hogy az alkalmazás explicit munkát végez az egyes keretekhez tartozó fókuszpont kiválasztásához. Vegye figyelembe, hogy ha manuálisan ad meg egy fókuszpontot, az felülbírálja a fent leírt automatikus viselkedést, és általában csökkenti a hologram stabilitását. Általában csak akkor kell manuális fókuszpontot megadnia, ha az alkalmazás olyan HoloLens-en fut, amely még nem lett frissítve a 2018. április Windows 10 frissítésre.

Példa

A Fókuszpont beállításának számos módja van, ahogy azt a SetFocusPointForFrame statikus függvényben elérhető túlterhelések is sugallják. Az alábbiakban bemutatunk egy egyszerű példát, amely a fókuszsíkot az egyes keretekhez megadott objektumra állítja:

public GameObject focusedObject;
void Update()
{
    // Normally the normal is best set to be the opposite of the main camera's
    // forward vector.
    // If the content is actually all on a plane (like text), set the normal to
    // the normal of the plane and ensure the user does not pass through the
    // plane.
    var normal = -Camera.main.transform.forward;     
    var position = focusedObject.transform.position;
    UnityEngine.XR.WSA.HolographicSettings.SetFocusPointForFrame(position, normal);
}

Megjegyzés

A fenti egyszerű kód csökkentheti a hologram stabilitását, ha a szűrt objektum a felhasználó mögött végzi. Általában azt javasoljuk, hogy a fókuszpont manuális megadása helyett állítsa be a Mélységi puffermegosztás engedélyezése beállítást.

Következő fejlesztési ellenőrzőpont

Ha követi a Unity által ismertetett fejlesztési folyamatot, a Mixed Reality platform képességeinek és API-jainak felfedezésére van szüksége. Innen folytathatja a következő témakört:

Vagy közvetlenül az alkalmazás eszközre vagy emulátorra való üzembe helyezéséhez:

Bármikor visszatérhet a Unity fejlesztési ellenőrzőpontjaihoz .

Lásd még