Carregando Telas

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

O Roblox exibe uma tela de carregamento padrão quando os usuários estão se conectando a uma experiência, mas você pode personalizar sua experiência com uma tela de carregamento personalizada que contém conteúdo estático ou animado.

Exibindo telas de carregamento personalizadas

Para exibir uma tela de carregamento personalizada, você pode projetar uma instância ScreenGui diretamente em um LocalScript , ou você pode fazer referência a um objeto ScreenGui em sua área de trabalho. Ambas as opções usam ReplicatedFirst , pois este serviço replica instâncias para clientes antes que qualquer outra coisa seja replicada. Isso garante que sua tela de carregamento seja a primeira coisa que os usuários vêem quando entram em sua experiência.

Projetando dentro do LocalScripts

Para projetar e exibir uma tela de carregamento personalizada:

  1. Em ReplicatedFirst , crie um LocalScript.

  2. Use o exemplo de código a seguir para criar e personalizar um ObjetoScreenGui. Você pode modificar o código a seguir com seus próprios valores para criar seu 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
-- Substitua os valores do ScreenGui por seus possuir
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
-- Remova a tela de carregamento padrão
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Force a tela a aparecer por um número mínimo de segundos
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()

Referenciando ScreenGuis

Em vez de criar o ScreenGui através de um LocalScript , você também pode fazer referência a um ScreenGui existente diretamente em seu workspace. Certifique-se de que sua experiência inclua um ScreenGui dentro de ReplicatedFirst e que o ScreenGui inclua elementos da interface do usuário como TextLabels e ImageLabels , e então configure-o como a tela de carregamento fazendo referência a ele dentro de um LocalScript . Esse método permite que você visualize facilmente sua tela de carregamento enquanto a está criando.

Para demonstrar este processo, os seguintes LocalScript fazem referência a um ScreenGui chamado LoadingScreen dentro de ReplicatedFirst, e então removem a tela de carregamento padrão para que a única tela de carregamento que um usuário pode ver seja sua própria tela de carregamento personalizada:


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
-- Remova a tela de carregamento padrão
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Force a tela a aparecer por um número mínimo de segundos
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()

Adicionando animações

Além das telas de carregamento estáticas personalizadas, você pode adicionar animações para melhorar a tela de carregamento e indicar o progresso do carregamento. A maneira mais fácil de fazer isso é criar um elemento da interface do usuário, como TextLabel ou ImageLabel, e depois animá-lo usando TweenService. Por exemplo, a seguinte amostra de código cria um novo ScreenGui com um filho ImageLabel, remove a tela de carregamento padrão e, em seguida, TweenService gira o ImageLabel continuamente até a experiência carregar:


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
-- Remova a tela de carregamento padrão
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) -- Force a tela a aparecer por um número mínimo de segundos
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()