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

Pour afficher un ScreenGui et ses enfants GuiObjects à chaque joueur qui rejoint l'expérience, placez-le à l'intérieur du conteneur StarterGui. Lorsqu'un joueur rejoint une expérience 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'une expérience grandit en ampleur, vous pouvez avoir besoin de plusieurs interfaces d'écran, comme un écran de titre, un menu des paramètres, une interface de boutique, 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 si elle doit être visible et active (lorsque false, le contenu ne sera pas rendu, ne traitera pas les entrées utilisateur et ne s'actualisera pas en réponse aux changements).

La propriété Enabled peut être activée ou désactivée initialement 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 réglant 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 insets d'écran à travers plusieurs appareils, l'ordre d'affichage lors de l'utilisation de plusieurs conteneurs d'écran, et plus encore.
Insets 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 l'index Z à travers leur propriété DisplayOrder. Par exemple, pour afficher un menu des paramètres modal sur un ScreenGui devant l'interface principale de l'expérience sur un autre ScreenGui, assignez un DisplayOrder plus élevé au modal que 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'UI du joueur
Comme noté, le parentage d'un ScreenGui au StarterGui le clone ainsi que ses enfants GuiObjects dans le conteneur PlayerGui d'un joueur lorsqu'il rejoint l'expérience et que son personnage apparaît pour la première fois.
Si vous avez besoin de contrôler le conteneur d'UI d'un joueur pendant le temps de jeu, par exemple pour afficher/masquer un ScreenGui spécifique ou n'importe lequel de ses enfants, accédez-y comme suit depuis un LocalScript :
LocalScript - Accéder à l'UI d'un joueurlocal Players = game:GetService("Players")local player = Players.LocalPlayerlocal playerGui = player.PlayerGuilocal titleScreen = playerGui:WaitForChild("TitleScreen")local settingsMenu = playerGui:WaitForChild("SettingsMenu")titleScreen.Enabled = false -- Masquer l'écran de titresettingsMenu.Enabled = true -- Afficher le menu des paramètres
Désactiver l'UI 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 |

Script Client - Désactiver les éléments d'interface utilisateur par défautlocal StarterGui = game:GetService("StarterGui")-- Désactiver la barre de santé et le sac à dos par défautStarterGui: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.

Script Client - Désactiver les contrôles tactileslocal GuiService = game:GetService("GuiService")GuiService.TouchControlsEnabled = false