Chargement des écrans

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Roblox affiche un écran de chargement par défaut lorsque les utilisateurs se connectent à une expérience, mais vous pouvez personnaliser votre expérience avec un écran de chargement personnalisé contenant du contenu statique ou animé.

Afficher les écrans de chargement personnalisés

Pour afficher un écran de chargement personnalisé, vous pouvez soit concevoir une instance ScreenGui directement dans un LocalScript , ou vous pouvez référencer un objet ScreenGui dans votre espace de travail.Les deux options utilisent ReplicatedFirst , car ce service qui réplique les instances aux clients avant toute autre chose est répliqué.Cela garantit que votre écran de chargement est la première chose que les utilisateurs voient lorsqu'ils entrent dans votre expérience.

Conception dans LocalScripts

Pour concevoir et afficher un écran de chargement personnalisé :

  1. Dans ReplicatedFirst , créez un LocalScript.
  2. Utilisez l'exemple de code suivant pour créer et personnaliser un objet ScreenGui.Vous pouvez modifier le code suivant avec vos propres valeurs pour créer votre design :

local Players = game:GetService("Players")
local ReplicatedFirst = game:GetService("ReplicatedFirst")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local screenGui = Instance.new("ScreenGui")
screenGui.IgnoreGuiInset = true
screenGui.Parent = playerGui
-- Remplacer les valeurs de ScreenGui par vos possédervaleurs
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.BackgroundColor3 = Color3.fromRGB(0, 20, 40)
textLabel.Font = Enum.Font.GothamMedium
textLabel.TextColor3 = Color3.new(0.8, 0.8, 0.8)
textLabel.Text = "Loading"
textLabel.TextSize = 28
textLabel.Parent = screenGui
-- Supprimer l'écran de chargement par défaut
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Forcer l'écran à apparaître pendant un nombre minimum de secondes
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()

Référence aux écrans ScreenGuis

Au lieu de créer le ScreenGui à travers un LocalScript , vous pouvez également référencer un existant ScreenGui directement dans votre espace de travail.Assurez-vous que votre expérience inclut un ScreenGui dans ReplicatedFirst et que le ScreenGui inclut des éléments d'interface utilisateur comme TextLabels et ImageLabels , puis définissez-le comme écran de chargement en le référençant dans un LocalScript .Cette méthode vous permet de visualiser facilement votre écran de chargement lorsque vous le créez.

Pour démontrer ce processus, les références suivantes LocalScript référencent une ScreenGui nommée Écran de chargement dans ReplicatedFirst , puis suppriment l'écran de chargement par défaut afin que le seul écran de chargement que l'utilisateur peut voir soit votre propre écran de chargement personnalisé :


local Players = game:GetService("Players")
local ReplicatedFirst = game:GetService("ReplicatedFirst")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local screenGui = ReplicatedFirst.LoadingScreen
screenGui.IgnoreGuiInset = true
screenGui.Parent = playerGui
-- Supprimer l'écran de chargement par défaut
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Forcer l'écran à apparaître pendant un nombre minimum de secondes
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()

Ajouter des animations

En plus des écrans de chargement statiques personnalisés, vous pouvez ajouter des animations pour améliorer l'écran de chargement et indiquer la progression du chargement.La façon la plus simple de le faire est de créer un élément d'interface utilisateur, tel qu'un TextLabel ou ImageLabel , puis d'animer celui-ci en utilisant TweenService .Par exemple, l'exemple de code suivant crée un nouveau ScreenGui avec un enfant ImageLabel , supprime l'écran de chargement par défaut, puis TweenService tourne le ImageLabel en continu jusqu'à ce que l'expérience se charge :


local Players = game:GetService("Players")
local ReplicatedFirst = game:GetService("ReplicatedFirst")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local screenGui = Instance.new("ScreenGui")
screenGui.IgnoreGuiInset = true
screenGui.Parent = playerGui
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.BackgroundColor3 = Color3.fromRGB(0, 20, 40)
textLabel.Font = Enum.Font.GothamMedium
textLabel.TextColor3 = Color3.new(0.8, 0.8, 0.8)
textLabel.Text = "Loading"
textLabel.TextSize = 28
textLabel.Parent = screenGui
local loadingRing = Instance.new("ImageLabel")
loadingRing.Size = UDim2.new(0, 256, 0, 256)
loadingRing.BackgroundTransparency = 1
loadingRing.Image = "rbxassetid://4965945816"
loadingRing.AnchorPoint = Vector2.new(0.5, 0.5)
loadingRing.Position = UDim2.new(0.5, 0, 0.5, 0)
loadingRing.Parent = screenGui
-- Supprimer l'écran de chargement par défaut
ReplicatedFirst:RemoveDefaultLoadingScreen()
local tweenInfo = TweenInfo.new(4, Enum.EasingStyle.Linear, Enum.EasingDirection.In, -1)
local tween = TweenService:Create(loadingRing, tweenInfo, {Rotation = 360})
tween:Play()
task.wait(5) -- Forcer l'écran à apparaître pendant un nombre minimum de secondes
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()