Kontenery interfejsu użytkownika na ekranie

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Kontener ScreenGui zawiera GuiObjects do wyświetlenia na ekranie gracza, w tym ramy , etykiety , przyciski i więcej.Wszystkie obiekty i kody interfejsu na ekranie są przechowywane i zmieniane na klientzie.

Example ScreenGui with various GuiObject children, including a Frame, TextLabel, TextBox, and ImageButton.

Aby wyświetlić ScreenGui i jego dziecko GuiObjects dla każdego gracza, który dołącza do doświadczenia, umieść go wewnątrz kontenera StarterGui.Kiedy gracz dołącza do doświadczenia i jego postać po raz pierwszy się pojawia, klonuje się ScreenGui i jego zawartość w kontenerze PlayerGui dla tego gracza, położonym w kontenerze Players.

Diagram of how a ScreenGui clones from StarterGui to a player's PlayerGui

W miarę rozrostu doświadczenia możesz wymagać wielu interfejsów ekranu, takich jak ekran tytułowy, menu ustawień, interfejs sklepu i wiele więcej.W takich przypadkach możesz umieścić wiele unikalnych ScreenGui kontenerów wewnątrz StarterGui i przełączyć właściwość każdego kontenera Enabled w zależności od tego, czy powinna być widoczna i aktywna (podczas gdy false treści nie będą renderowane, przetwarzane wejście użytkownika lub aktualizowane w odpowiedzi na zmiany).

Explorer hierarchy showing multiple ScreenGui containers, one enabled and the others disabled, in order to control which are visible at a given time.

Właściwość może być początkowo przełączona za pośrednictwem okna Właściwości lub można ją ustawić podczas czasu gry z powodu skryptu po stronie klienta, uzyskując dostęp do gracza i ustawiając go na lub dla pożądanego kontenera(ów).

Właściwości pojemnika

Następujące właściwości pozwalają dostosować wstawki ekranowe na różnych urządzeniach, kolejność wyświetlania przy użyciu wielu kontenerów ekranowych i więcej.

Wstawki ekranowe

Nowoczesne telefony wykorzystują cały ekran, ale zwykle obejmują przetłoczenia, wycięcia i inne elementy, które zajmują przestrzeń ekranu.Każde doświadczenie Roblox obejmuje również sterowanie paskiem górnym do szybkiego dostępu do głównego menu, czat , tabelę wyników i więcej.

Mobile device showing Roblox top bar buttons and device cutout.

Aby upewnić się, że gracze mogą łatwo i bez przeszkód zobaczyć i uzyskać dostęp do wszystkich interfejsów użytkownika, Roblox dostarcza właściwość ScreenInsets, która kontroluje wstawki bezpiecznej strefy dla zawartości ScreenGui.

Domyślnie CoreUISafeInsets utrzymuje wszystkie potomki GuiObjects wewnątrz bezpiecznej strefy interfejsu użytkownika, oczyszczonej z przycisków paska górnego i innych przecięć ekranu.To ustawienie jest rekomendowane, jeśli ScreenGui zawiera interaktywne elementy UI.

Mobile device showing the core UI safe area.

Wyświetl kolejność

Podczas używania wielu interfejsów ScreenGui możesz je rozłożyć przez Z‑index poprzez ich właściwość DisplayOrder.Na przykład, aby wyświetlić menu ustawień modalowych na jednym ScreenGui przed głównym interfejsem użytkownika doświadczenia na innym ScreenGui , przypisz wyższy DisplayOrder modal niż interfejs podstawowy.

Zresetuj na spawnie

Właściwość ResetOnSpawn prawda lub fałsz określa, czy ScreenGui resetuje się (usuwa samodzielnie i klonuje się w postaci gracza PlayerGui) za każdym razem, gdy postać gracza się odrodzi.

WarunekResetuje
ResetOnSpawn jest true (domyślny).
yes
The ScreenGui jest wtórnym potomkiem pośrednim z StarterGui ; na przykład jest umieszczony wewnątrz Folder położonego w StarterGui .
yes
jest i jest bezpośrednim potomkiem .
no

Interfejs użytkownika gracza dostępu

Jak wspomniano, opiekunowanie ScreenGui do StarterGui klonuje je i ich dziecko GuiObjects w kontenerze gracza PlayerGui, gdy dołączą do doświadczenia i ich postać pojawi się po raz pierwszy.

Jeśli musisz kontrolować kontener interfejsu użytkownika gracza podczas czasu gry, na przykład, aby pokazać/ukryć określone ScreenGui lub którekolwiek z jego dzieci, uzyskaj do niego dostęp z LocalScript:

LocalScript - Dostęp do gracza's UI

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player.PlayerGui
local titleScreen = playerGui:WaitForChild("TitleScreen")
local settingsMenu = playerGui:WaitForChild("SettingsMenu")
titleScreen.Enabled = false -- Ukryj ekran tytułowy
settingsMenu.Enabled = true -- Show settings menu

Wyłącz domyślną obsługę interfejsu

Wszystkie doświadczenia Roblox zawierają kilka elementów interfejsu użytkownika, które są włączone domyślnie.Jeśli nie potrzebujesz żadnego z tych elementów lub chcesz je zastąpić własnymi tworami, możesz użyć metody SetCoreGuiEnabled() w skrypcie strony klienta z opcją Enum.CoreGuiType.

Domyślny interfejsPowiązany enum
Dynamicznie aktualizowana lista Players, powszechnie używana jako tabela wyników.Enum.CoreGuiType.PlayerList
Pasek znaków Health postaci. Nie pojawia się, jeśli postać ma pełne zdrowie Humanoid.Enum.CoreGuiType.Health
Litera Backpack znajdująca się w postaci, która zawiera narzędzia doświadczenia. Nie pojawia się, jeśli nie ma Tools w plecaku.Enum.CoreGuiType.Backpack
Okno czatu tekstowego.Enum.CoreGuiType.Chat
Menu wyskakujące postaci emotki.Enum.CoreGuiType.EmotesMenu
Okno wyświetlające perspektywę gracza lub widok jego własnej postaci.Nie pojawia się, chyba że gracz włączył Widok własny z menu Roblox.Enum.CoreGuiType.SelfView
Przycisk przyłap szkic ekranu po prawej stronie ekranu.Nie pojawia się, chyba że gracz włączył Przechwyty z menu Roblox.Enum.CoreGuiType.Captures
Core UI elements in every Roblox experience.
Skrypt klienta - Wyłącz domyślne elementy interfejsu

local StarterGui = game:GetService("StarterGui")
-- Wyłącz domyślną pasek zdrowia i plecak
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Health, false)
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)

Ponadto urządzenia z możliwościami dotykowymi obejmują wirtualny joystick i przycisk skoku domyślnie.Jeśli chcesz, możesz ukryć te elementy, ustawiając GuiService.TouchControlsEnabled na false w skrypcie strony klienta.

UI elements for touch-capable devices in every Roblox experience
Skrypt klienta - Wyłącz kontrolki dotykowe

local GuiService = game:GetService("GuiService")
GuiService.TouchControlsEnabled = false