Il contenitore ScreenGui contiene GuiObjects da visualizzare sullo schermo di un giocatore, inclusi frame, etichette, pulsanti e altro ancora. Tutti gli oggetti e il codice UI su schermo sono memorizzati e modificati sul client.

Per visualizzare un ScreenGui e i suoi GuiObjects figli a ogni giocatore che entra nell'esperienza, posizionalo all'interno del contenitore StarterGui. Quando un giocatore entra in un'esperienza e il suo personaggio appare per la prima volta, il ScreenGui e i suoi contenuti vengono clonati nel contenitore PlayerGui per quel giocatore, situato all'interno del contenitore Players.

Man mano che un'esperienza cresce in portata, potresti aver bisogno di più interfacce su schermo come una schermata titolo, un menu impostazioni, un'interfaccia negozio e altro ancora. In tali casi, puoi posizionare più contenitori unici ScreenGui all'interno di StarterGui e alternare la proprietà Enabled di ciascun contenitore a seconda se debbano essere visibili e attivi (quando impostata su false, i contenuti non verranno visualizzati, processeranno l'input dell'utente o si aggiorneranno in risposta ai cambiamenti).

La proprietà Enabled può essere inizialmente alternata tramite la finestra Proprietà e/o puoi impostarla durante il tempo di esecuzione da uno script lato client accedendo al PlayerGui del giocatore e impostandolo su true o false per il/i contenitore/i desiderato/i.
Proprietà del contenitore
Le seguenti proprietà ti consentono di personalizzare gli inset su schermo su più dispositivi, l' ordine di visualizzazione quando utilizzi più contenitori su schermo e altro ancora.
Inset su schermo
Modern phones take advantage of the entire screen but typically include notches, cutouts, and other elements that occupy screen space. Every Roblox game also includes the top bar controls for quick access to the main menu, chat, leaderboard, and more.

To ensure players can see and access all UI easily and without obstruction, Roblox provides the ScreenInsets property which controls the safe area insets for the contents of a ScreenGui.
The default of CoreUISafeInsets keeps all descendant GuiObjects inside the core UI safe area, clear of the top bar buttons and other screen cutouts. This setting is recommended if the ScreenGui contains interactive UI elements.

Ordine di visualizzazione
Quando usi più interfacce ScreenGui, puoi sovrapporle per indice Z attraverso la loro proprietà DisplayOrder. Ad esempio, per visualizzare un menu impostazioni modale su un ScreenGui davanti all'interfaccia utente principale dell'esperienza su un altro ScreenGui, assegna un DisplayOrder più alto a quello modale rispetto a quello sottostante.
Reset alla generazione
La proprietà booleana ResetOnSpawn determina se il ScreenGui si resetta (elimina se stesso e si riclona nel PlayerGui del giocatore) ogni volta che il personaggio del giocatore rinasce.
| Condizione | Resetta |
|---|---|
| ResetOnSpawn è true (predefinito). | SÌ |
| Il ScreenGui è un discendente indiretto di StarterGui; ad esempio, è posizionato all'interno di un Folder situato all'interno di StarterGui. | SÌ |
| ResetOnSpawn è false e il ScreenGui è un discendente diretto di StarterGui. | NO |
Accedi alla UI del giocatore
Come accennato, la genitorialità di un ScreenGui al StarterGui lo clona e i suoi GuiObjects figli nel contenitore PlayerGui di un giocatore quando entrano nell'esperienza e il loro personaggio appare per la prima volta.
Se hai bisogno di controllare il contenitore UI di un giocatore durante il tempo di esecuzione, ad esempio per mostrare/nascondere un specifico ScreenGui o uno dei suoi figli, accedilo come segue da uno LocalScript:
LocalScript - Accesso alla UI di un Giocatorelocal Players = game:GetService("Players")local player = Players.LocalPlayerlocal playerGui = player.PlayerGuilocal titleScreen = playerGui:WaitForChild("TitleScreen")local settingsMenu = playerGui:WaitForChild("SettingsMenu")titleScreen.Enabled = false -- Nascondi la schermata titolosettingsMenu.Enabled = true -- Mostra il menu impostazioni
Disattiva l'UI predefinita
Tutti i giochi Roblox includono diversi elementi UI che sono abilitati per impostazione predefinita. Se non hai bisogno di nessuno di questi elementi o se desideri sostituirli con le tue creazioni, puoi utilizzare il metodo SetCoreGuiEnabled() in uno script lato client con l'opzione Enum.CoreGuiType associata.
| UI predefinita | Enum associato |
|---|---|
| Elenco Players aggiornato dinamicamente, comunemente usato come classifica. | Enum.CoreGuiType.PlayerList |
| Barra di Salute del personaggio. Non appare se la Humanoid del personaggio è al massimo della salute. | Enum.CoreGuiType.Health |
| La Backpack del personaggio che contiene strumenti in gioco. Non appare se non ci sono Strumenti nello zaino. | Enum.CoreGuiType.Backpack |
| Finestra della chat testuale. | Enum.CoreGuiType.Chat |
| Menu a comparsa di emote del personaggio. | Enum.CoreGuiType.EmotesMenu |
| Una finestra che visualizza la prospettiva o la visione del proprio personaggio da parte di un giocatore. Non appare a meno che il giocatore non abbia abilitato Vista Personale dal menu di Roblox. | Enum.CoreGuiType.SelfView |
| Pulsante cattura schermata lungo il lato destro dello schermo. Non appare a meno che il giocatore non abbia abilitato Catture dal menu di Roblox. | Enum.CoreGuiType.Captures |
| Il Cambiatore di Avatar consente agli utenti di cambiare il loro avatar della piattaforma. | Enum.CoreGuiType.AvatarSwitcher |

Script Client - Disabilita Elementi UI Predefinitilocal StarterGui = game:GetService("StarterGui")-- Disabilita la barra della salute predefinita e lo zainoStarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Health, false)StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)
Inoltre, i dispositivi con capacità tattili includono un thumbstick virtuale e un pulsante di salto per impostazione predefinita. Se desideri, puoi nascondere questi elementi impostando GuiService.TouchControlsEnabled su false in uno script lato client.

Script Client - Disabilita Controlli Touchlocal GuiService = game:GetService("GuiService")GuiService.TouchControlsEnabled = false