Punkt koncentracji uwagi w a środowisku Unity

Przestrzeń nazw:UnityEngine.XR.WSA
Typ: HolographicSettings

Użyj punktu fokusu , aby zapewnić urządzeniu HoloLens wskazówkę dotyczącą tego, jak najlepiej ustabilizować aktualnie wyświetlane hologramy.

Jeśli chcesz ustawić punkt koncentracji uwagi w akracie Unity, należy ustawić każdą ramkę przy użyciu elementu HolographicSettings.SetFocusPointForFrame(). Jeśli punkt koncentracji uwagi nie jest ustawiony dla ramki, używana jest domyślna płaszczyzna stabilizacji.

Uwaga

Domyślnie nowe projekty aparatu Unity mają ustawioną opcję "Włącz udostępnianie buforu głębokości". Dzięki tej opcji aplikacja aparatu Unity uruchomiona na immersywnym zestawie słuchawkowym pulpitu lub urządzeniu HoloLens z aktualizacją z Windows 10 kwietnia 2018 r. (RS4) lub nowszą wersją przesyła bufor głębokości do systemu Windows w celu automatycznego optymalizowania stabilności hologramu bez określania punktu koncentracji uwagi przez aplikację:

  • W immersywnym zestawie słuchawkowym dla komputerów stacjonarnych umożliwi to ponowne odwzorowanie na podstawie głębokości na piksel.
  • Na urządzeniu HoloLens z aktualizacją Windows 10 kwietnia 2018 r. lub nowszą, przeanalizuje bufor głębokości, aby automatycznie wybrać optymalną płaszczyznę stabilizacji.

Każde podejście powinno zapewnić jeszcze lepszą jakość obrazu bez jawnej pracy aplikacji, aby wybrać punkt koncentracji uwagi dla każdej ramki. Należy pamiętać, że jeśli ręcznie podasz punkt koncentracji uwagi, spowoduje to zastąpienie automatycznego zachowania opisanego powyżej i zwykle zmniejszy stabilność hologramu. Ogólnie rzecz biorąc, należy określić ręczny punkt koncentracji uwagi tylko wtedy, gdy aplikacja jest uruchomiona na urządzeniu HoloLens, który nie został jeszcze zaktualizowany do aktualizacji z Windows 10 kwietnia 2018 r.

Przykład

Istnieje wiele sposobów ustawiania punktu koncentracji uwagi, zgodnie z sugestią przeciążeń dostępnych w funkcji statycznej SetFocusPointForFrame . Poniżej przedstawiono prosty przykład ustawiania płaszczyzny fokusu na podany obiekt dla każdej ramki:

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);
}

Uwaga

Powyższy prosty kod może zmniejszyć stabilność hologramu, jeśli obiekt skoncentrowany znajduje się za użytkownikiem. Zazwyczaj zalecamy ustawienie Włącz udostępnianie buforu głębokości zamiast ręcznego określania punktu fokusu.

Następny punkt kontrolny programowania

Jeśli śledzisz określoną przez nas podróż dewelopera aparatu Unity, jesteś w trakcie eksplorowania możliwości platformy Mixed Reality i interfejsów API. W tym miejscu możesz przejść do następnego tematu:

Możesz też przejść bezpośrednio do wdrożenia aplikacji na urządzeniu lub emulatorze:

Zawsze możesz wrócić do punktów kontrolnych tworzenia aparatu Unity w dowolnym momencie.

Zobacz też