Le conteneur ScreenGui contient des GuiObjects à afficher sur l'écran d'un joueur, y compris des cadres, des étiquettes, des boutons, et plus encore. Tous les objets d'interface utilisateur à l'écran et le code sont stockés et modifiés sur le client.

Pour afficher un ScreenGui et ses enfants GuiObjects à chaque joueur qui rejoint le jeu, placez-le à l'intérieur du conteneur StarterGui. Lorsqu'un joueur rejoint un jeu et que son personnage apparaît pour la première fois, le ScreenGui et son contenu sont clonés dans le conteneur PlayerGui pour ce joueur, situé dans le conteneur Players.

À mesure qu'un jeu s'agrandit, vous pouvez avoir besoin de plusieurs interfaces d'écran telles qu'un écran de titre, un menu de paramètres, une interface de magasin, et plus encore. Dans de tels cas, vous pouvez placer plusieurs conteneurs ScreenGui uniques à l'intérieur de StarterGui et activer ou désactiver la propriété Enabled de chaque conteneur en fonction de s'il doit être visible et actif (lorsque false, le contenu ne sera pas rendu, ne traitera pas les entrées utilisateur, ou ne se mettra pas à jour en réponse aux changements).

La propriété Enabled peut être initialement activée via la fenêtre Propriétés et/ou vous pouvez la définir pendant le temps de jeu à partir d'un script côté client en accédant au PlayerGui du joueur et en le définissant sur true ou false pour le(s) conteneur(s) souhaité(s).
Propriétés du conteneur
Les propriétés suivantes vous permettent de personnaliser les marges d'écran sur plusieurs appareils, l'ordre d'affichage lors de l'utilisation de plusieurs conteneurs d'écran, et plus encore.
Marges d'écran
Les téléphones modernes tirent parti de l'ensemble de l'écran, mais incluent généralement des encoches, des découpes et d'autres éléments qui occupent de l'espace à l'écran. Chaque jeu Roblox inclut également les contrôles de la barre supérieure pour un accès rapide au menu principal, chat, leaderboard, et plus encore.

Pour garantir que les joueurs puissent voir et accéder facilement à toutes les UI sans obstruction, Roblox fournit la propriété ScreenInsets qui contrôle les marges de zone de sécurité pour le contenu d'un ScreenGui.
La valeur par défaut de CoreUISafeInsets maintient tous les GuiObjects descendants à l'intérieur de la zone de sécurité de l'interface utilisateur de base, éloignés des boutons de la barre supérieure et d'autres découpes d'écran. Ce paramètre est recommandé si le ScreenGui contient des éléments d'interface utilisateur interactifs.

Ordre d'affichage
Lors de l'utilisation de plusieurs interfaces ScreenGui, vous pouvez les superposer par ordre Z à travers leur propriété DisplayOrder. Par exemple, pour afficher un menu de paramètres modal sur un ScreenGui devant l'interface utilisateur principale du jeu sur un autre ScreenGui, attribuez un DisplayOrder plus élevé à celui du modal qu'à celui de l'interface sous-jacente.
Réinitialiser à la réapparition
La propriété booléenne ResetOnSpawn détermine si le ScreenGui se réinitialise (se supprime et se reclone dans le PlayerGui du joueur) chaque fois que le personnage du joueur réapparaît.
| Condition | Réinitialisations |
|---|---|
| ResetOnSpawn est true (par défaut). | OUI |
| Le ScreenGui est un descendant indirect de StarterGui; par exemple, il est placé à l'intérieur d'un Folder situé dans StarterGui. | OUI |
| ResetOnSpawn est false et le ScreenGui est un descendant direct de StarterGui. | NON |
Accéder à l'interface utilisateur du joueur
Comme mentionné, le fait de parenté un ScreenGui à StarterGui le clone et ses enfants GuiObjects dans le conteneur PlayerGui d'un joueur lorsqu'il rejoint le jeu et que son personnage apparaît pour la première fois.
Si vous devez contrôler le conteneur d'interface utilisateur d'un joueur pendant le temps de jeu, par exemple pour afficher/masquer un ScreenGui spécifique ou l'un de ses enfants, accédez-y comme suit depuis un LocalScript :
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 -- Masquer l'écran de titre
settingsMenu.Enabled = true -- Afficher le menu des paramètresDésactiver l'interface utilisateur par défaut
Tous les jeux Roblox incluent plusieurs éléments d'interface utilisateur qui sont activés par défaut. Si vous n'avez besoin d'aucun de ces éléments ou si vous souhaitez les remplacer par vos propres créations, vous pouvez utiliser la méthode SetCoreGuiEnabled() dans un script côté client avec l'option Enum.CoreGuiType associée.
| UI par défaut | Enum associé |
|---|---|
| Liste Players mise à jour dynamiquement, couramment utilisée comme un tableau des scores. | Enum.CoreGuiType.PlayerList |
| La barre de Santé du personnage. N'apparaît pas si le Humanoid du personnage est à pleine santé. | Enum.CoreGuiType.Health |
| Le Backpack du personnage qui contient des outils en jeu. N'apparaît pas s'il n'y a pas de Outils dans le sac à dos. | Enum.CoreGuiType.Backpack |
| La fenêtre de chat texte. | Enum.CoreGuiType.Chat |
| Menu contextuel des émotes du personnage. | Enum.CoreGuiType.EmotesMenu |
| Une fenêtre affichant la perspective ou la vue du joueur de son propre personnage. N'apparaît pas à moins que le joueur ait activé Vue de soi dans le menu Roblox. | Enum.CoreGuiType.SelfView |
| Un bouton capture d'écran le long du côté droit de l'écran. N'apparaît pas à moins que le joueur ait activé Captures dans le menu Roblox. | Enum.CoreGuiType.Captures |
| L'Alterner d'Avatar permet aux utilisateurs de changer leur avatar de plateforme. | Enum.CoreGuiType.AvatarSwitcher |

local StarterGui = game:GetService("StarterGui")
-- Désactiver la barre de santé et le sac à dos par défaut
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Health, false)
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)De plus, les appareils avec des capacités tactiles incluent par défaut un joystick virtuel et un bouton de saut. Si désiré, vous pouvez cacher ces éléments en définissant GuiService.TouchControlsEnabled sur false dans un script côté client.

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