Punkt koncentracji uwagi w aucie 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 aprowizowaniu aparatu 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 systemem Windows 10 z kwietnia 2018 Update (RS4) lub nowszym przesyła bufor głębokości do systemu Windows, aby automatycznie zoptymalizować stabilność hologramu bez określania punktu koncentracji uwagi przez aplikację:
- W immersywnym zestawie słuchawkowym dla komputerów stacjonarnych umożliwi to ponowne projekty oparte na głębokości na pikselach.
- Na urządzeniu HoloLens z aktualizacją systemu Windows 10 z kwietnia 2018 r. lub nowszym 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 udostępnisz 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 systemu Windows 10 z 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. Ogólnie zaleca się ustawienie Włącz udostępnianie buforu głębokości zamiast ręcznego określania punktu fokusu.
Następny punkt kontrolny programowania
Jeśli obserwujesz określoną podróż do opracowywania aparatu Unity, jesteś w trakcie eksplorowania możliwości i interfejsów API platformy rzeczywistości mieszanej. 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 programowania aparatu Unity w dowolnym momencie.