Kontenery UI w grze przechowują GuiObjects, które chcesz wyświetlić w 3D w swoim świecie gry.
- SurfaceGui pozwala na renderowanie obiektów UI na powierzchni części w świecie 3D, jednocześnie umożliwiając podstawową interakcję użytkownika.
- BillboardGui jest kontenerem dla obiektów UI, które pojawiają się w przestrzeni 3D, ale zawsze zwracają się w stronę kamery.
UI powierzchni
Podobnie jak Decals i Textures, obiekty UI, takie jak TextLabels i ImageLabels, będące dziećmi SurfaceGui, zwracają się w tym samym kierunku, co powierzchnia, na której się znajdują, co można edytować za pomocą właściwości SurfaceGui.Face.

Aby zastosować SurfaceGui do BasePart w grze, wystarczy dodać go jako dziecko do tej części i ustawić właściwość SurfaceGui.Face. Obiekty UI dzieci pojawią się na tej stronie rodzica.


Alternatywnie, możesz umieścić SurfaceGui w kontenerze, takim jak StarterGui, a następnie ustawić jego właściwość Adornee na dowolny BasePart, a także na docelową Face. Ustawienie Adornee nadpisuje bezpośrednie powiązanie rodzica, co pozwala na większą elastyczność w umiejscowieniu, ponieważ można to ustawić z poziomu skryptu w czasie wykonywania.


Rozmiar i pozycja
"Canvas" SurfaceGui zajmuje całą stronę Face rodzica lub części Adornee. Jako najlepsza praktyka zaleca się używanie wartości skali dla rozmiaru i pozycji obiektów UI dzieci, takich jak ImageLabels. Możesz również zastosować UIAspectRatioConstraint do dzieci SurfaceGui, aby zachować pożądany współczynnik proporcji niezależnie od rozmiaru strony.
Tryb okluzji
Właściwość AlwaysOnTop określa, czy SurfaceGui będzie renderowane nad treściami 3D, czy będzie przez nie zasłaniane. Gdy jest ustawiona na false (domyślnie), SurfaceGui renderuje się jak inne treści 3D i jest zasłaniane przez inne obiekty 3D. Gdy jest ustawiona na true, zawsze renderuje się nad treściami 3D i nie jest wpływane przez jasność/światło w środowisku 3D.
Jasność i wpływ światła
Brightness i LightInfluence współpracują ze sobą, aby określić, jak światło otoczenia wpływa na treść UI SurfaceGui.
Brightness określa czynnik, w jakim emitowane światło jest skalowane w zakresie od 0 do 1000, pozwalając na dopasowanie SurfaceGui do jego otoczenia. Na przykład, billboard wideo może być rozjaśniony w ciemnym pomieszczeniu poprzez zwiększenie Brightness do 10.
LightInfluence kontroluje, w jakim stopniu SurfaceGui jest wpływane przez oświetlenie w miejscu, w zakresie od 0 do 1. Ustawienie tego na 1 oznacza, że otaczające oświetlenie ma pełną kontrolę nad wyglądem, podczas gdy ustawienie na 0 oznacza, że oświetlenie nie ma żadnego wpływu.

Widoczność z odległości
MaxDistance kontroluje, jak daleko od kamery SurfaceGui będzie wyświetlane, zanim przestanie być renderowane. Wartość 0 oznacza, że nie ma limitu i będzie renderowane w nieskończoność. Domyślna wartość 1000 działa dobrze w większości przypadków.
Dla SurfaceGuis, które pojawiają się na zewnątrz, zaleca się, aby MaxDistance było wystarczająco wysokie, aby zapewnić, że UI kontenera jest wystarczająco małe na ekranie, gdy się pojawia lub znika, minimalizując nagły efekt pojawiania się/niknięcia.
Kolejność wyświetlania
Jeśli na tej samej stronie istnieje wiele kontenerów SurfaceGui, możesz je warstwować według indeksu Z za pomocą właściwości ZOffset (zmiana tego nie "podnosi" ani "nie obniża" wizualnie kontenera z powierzchni).
UI billboard
Kontener BillboardGui wyświetla obiekty UI w przestrzeni 3D, ale w przeciwieństwie do SurfaceGui, dzieci BillboardGui zawsze zwracają się w stronę kamery. Ten kontener jest przydatny do wyświetlania informacji zwróconych w stronę gracza nad obiektami w grze, takimi jak wskaźniki zdrowia lub imiona postaci graczy, znaczniki prowadzące graczy do obiektu w świecie 3D i inne.

Aby połączyć BillboardGui z BasePart lub Attachment w grze, wystarczy dodać go jako dziecko do tej części lub przymocowania i, jeśli to konieczne, dostosować jego rozmiar/pozycję.


Alternatywnie, możesz umieścić BillboardGui w kontenerze, takim jak StarterGui, a następnie ustawić jego właściwość Adornee na dowolny BasePart lub Attachment. Ta metoda oferuje większą elastyczność w umiejscowieniu, ponieważ Adornee można ustawić z poziomu skryptu w czasie wykonywania, na przykład, aby umieścić BillboardGui nad głowami postaci graczy w czasie wykonywania.
Rozmiar i pozycja
Dla rozmiaru billboardu, komponenty skali właściwości Size ustawiają rozmiar billboardu w studach w przestrzeni 3D. Na przykład, ustawienie {10, 0},{2, 0} (UDim2.fromScale(10, 2)) tworzy billboard o proporcjach 10:2, który skaluje się większy lub mniejszy w zależności od odległości od kamery.
Dla pozycji, właściwość StudsOffset przesuwa canvas billboardu na osi X (lewo/prawo), osi Y (góra/dół) i osi Z (do przodu/tyłu) w stosunku do kamery.
Tryb okluzji
Właściwość AlwaysOnTop określa, czy BillboardGui będzie renderowane nad treściami 3D, czy będzie przez nie zasłaniane. Gdy jest ustawiona na false (domyślnie), BillboardGui renderuje się jak inne treści 3D i jest zasłaniane przez inne obiekty 3D. Gdy jest ustawiona na true, zawsze renderuje się nad treściami 3D i nie jest wpływane przez jasność/światło w środowisku 3D.
Jasność i wpływ światła
Brightness i LightInfluence współpracują ze sobą, aby określić, jak światło otoczenia wpływa na treść UI BillboardGui.
Brightness określa czynnik, w jakim emitowane światło jest skalowane w zakresie od 0 do 1000, pozwalając na dopasowanie BillboardGui do jego otoczenia. Na przykład, billboard wideo może być rozjaśniony w ciemnym pomieszczeniu poprzez zwiększenie Brightness do 10.
LightInfluence kontroluje, w jakim stopniu BillboardGui jest wpływane przez oświetlenie w miejscu, w zakresie od 0 do 1. Ustawienie tego na 1 oznacza, że otaczające oświetlenie ma pełną kontrolę nad wyglądem, podczas gdy ustawienie na 0 oznacza, że oświetlenie nie ma żadnego wpływu.

Widoczność z odległości
MaxDistance kontroluje, jak daleko od kamery BillboardGui będzie wyświetlane, zanim przestanie być renderowane. Wartość 0 lub inf (domyślnie) oznacza, że nie ma limitu i będzie renderowane w nieskończoność.