Kontener ScreenGui przechowuje GuiObjects, które są wyświetlane na ekranie gracza, w tym ramki, etykiety, przyciski i inne. Wszystkie obiekty UI na ekranie i kod są przechowywane i zmieniane po stronie klienta.

Aby wyświetlić ScreenGui i jego dzieci GuiObjects dla każdego gracza, który dołącza do doświadczenia, umieść go w kontenerze StarterGui. Kiedy gracz dołącza do doświadczenia i jego postać się pierwsza pojawia, ScreenGui i jego zawartość zostaną sklonowane do kontenera PlayerGui dla tego gracza, znajdującego się w kontenerze Players.

Kiedy doświadczenie rośnie w zakresie, możesz potrzebować wielu interfejsów ekranowych, takich jak ekran tytułowy, menu ustawień, interfejs sklepu i inne. W takich przypadkach możesz umieścić wiele unikalnych kontenerów ScreenGui wewnątrz StarterGui i przełączać właściwość Enabled każdego kontenera w zależności od tego, czy powinien być widoczny i aktywny (gdy false, zawartość nie będzie renderowana, przetwarzać wejścia użytkownika ani aktualizować w odpowiedzi na zmiany).

Właściwość Enabled może być początkowo przełączana przez okno Właściwości i/lub można ją ustawić podczas gry za pomocą skryptu po stronie klienta, uzyskując dostęp do PlayerGui gracza i ustawiając ją na wartość true lub false dla wybranego kontenera(ów).
Właściwości kontenera
Poniższe właściwości pozwalają dostosować marginesy ekranu na wielu urządzeniach, kolejność wyświetlania przy użyciu wielu kontenerów ekranowych i inne.
Marginesy ekranu
Nowoczesne telefony wykorzystują cały ekran, ale zazwyczaj mają wcięcia, wycięcia i inne elementy zajmujące przestrzeń ekranu. Każde doświadczenie Roblox również zawiera kontrolki górnego paska umożliwiające szybki dostęp do głównego menu, czatu, rankingu i innych.

Aby zapewnić graczom łatwy dostęp do całego UI bez przeszkód, Roblox oferuje właściwość ScreenInsets, która kontroluje bezpieczne obszary dla zawartości ScreenGui.
Domyślny CoreUISafeInsets utrzymuje wszystkie obiekty potomne GuiObjects w obrębie bezpiecznego obszaru UI, z dala od przycisków górnego paska i innych wycięć ekranu. Ustawienie to jest zalecane, jeśli ScreenGui zawiera interaktywne elementy UI.

Kolejność wyświetlania
Podczas korzystania z wielu interfejsów ScreenGui, możesz je układać według indeksu Z poprzez właściwość DisplayOrder. Na przykład, aby wyświetlić modalne menu ustawień na jednym ScreenGui przed głównym interfejsem użytkownika doświadczenia na innym ScreenGui, przypisz wyższą wartość DisplayOrder do modalu niż do interfejsu poniżej.
Reset przy odrodzeniu
Właściwość logiczna ResetOnSpawn decyduje, czy ScreenGui resetuje się (usuwa się i ponownie klonuje do PlayerGui gracza) za każdym razem, gdy postać gracza się odradza.
| Warunek | Resetuje się |
|---|---|
| ResetOnSpawn jest true (domyślnie). | TAK |
| ScreenGui jest pośrednim potomkiem StarterGui; na przykład znajduje się w Folder znajdującym się w StarterGui. | TAK |
| ResetOnSpawn jest false i ScreenGui jest bezpośrednim potomkiem StarterGui. | NIE |
Uzyskaj dostęp do interfejsu Użytkownika gracza
Jak wspomniano, zrzeszenie ScreenGui do StarterGui klonuje go i jego dzieci GuiObjects do kontenera PlayerGui gracza, gdy dołącza do doświadczenia, a jego postać się po raz pierwszy pojawia.
Jeśli potrzebujesz kontrolować kontener UI gracza podczas gry, na przykład, aby pokazać/ukryć konkretny ScreenGui lub którykolwiek z jego dzieci, uzyskaj do niego dostęp w następujący sposób z LocalScript:
LocalScript - Uzyskiwanie dostępu do UI graczalocal Players = game:GetService("Players")local player = Players.LocalPlayerlocal playerGui = player.PlayerGuilocal titleScreen = playerGui:WaitForChild("TitleScreen")local settingsMenu = playerGui:WaitForChild("SettingsMenu")titleScreen.Enabled = false -- Ukryj ekran tytułowysettingsMenu.Enabled = true -- Pokaż menu ustawień
Wyłącz domyślne UI
Wszystkie doświadczenia Roblox zawierają kilka elementów UI, które są domyślnie włączone. Jeśli nie potrzebujesz żadnych z tych elementów lub jeśli chcesz je zastąpić swoimi dziełami, możesz użyć metody SetCoreGuiEnabled() w skrypcie po stronie klienta z powiązaną opcją Enum.CoreGuiType.
| Domyślne UI | Powiązany enum |
|---|---|
| Dynamicznie aktualizowana lista Players, zazwyczaj używana jako tablica wyników. | Enum.CoreGuiType.PlayerList |
| Pas zdrowia Health postaci. Nie pojawia się, jeśli pas saúde postaci Humanoid jest w pełni zdrowy. | Enum.CoreGuiType.Health |
| Przechowalnia Backpack postaci, która zawiera narzędzia w doświadczeniu. Nie pojawia się, jeśli nie ma żadnych Tools w plecaku. | Enum.CoreGuiType.Backpack |
| Okno czatu tekstowego. | Enum.CoreGuiType.Chat |
| Menu wyboru emotów postaci. | Enum.CoreGuiType.EmotesMenu |
| Okno wyświetlające perspektywę gracza lub widok ich własnej postaci. Nie pojawia się, chyba że gracz włączył Widok własny w menu Roblox. | Enum.CoreGuiType.SelfView |
| Przycisk zrzutu ekranu wzdłuż prawego boku ekranu. Nie pojawia się, chyba że gracz włączył Zrzuty w menu Roblox. | Enum.CoreGuiType.Captures |
| Przełącznik awatarów pozwala użytkownikom zmieniać swojego awatara na platformie. | Enum.CoreGuiType.AvatarSwitcher |

Skrypt Klienta - Wyłączenie Domyślnych Elementów UIlocal StarterGui = game:GetService("StarterGui")-- Wyłączenie domyślnego paska zdrowia i plecakaStarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Health, false)StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)
Dodatkowo, urządzenia z funkcjami dotykowymi mają domyślnie dołączony wirtualny joystick i przycisk skoku. Jeśli chcesz, możesz ukryć te elementy, ustawiając GuiService.TouchControlsEnabled na false w skrypcie po stronie klienta.

Skrypt Klienta - Wyłączenie Kontroli Dotykowychlocal GuiService = game:GetService("GuiService")GuiService.TouchControlsEnabled = false