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.

Exibir telas de carregamento personalizadas

Para exibir uma tela de carregamento personalizada, você pode projetar uma instância ScreenGui diretamente dentro de um LocalScript , ou você pode referenciar um objeto ScreenGui em seu espaço de trabalho.Ambas as opções utilizam ReplicatedFirst , como este serviço que replica instâncias para os clientes antes de qualquer outra coisa ser replicada.Isso garante que a sua tela de carregamento seja a primeira coisa que os usuários veem quando entram na sua experiência.

Projete dentro de LocalScripts

Para projetar e exibir uma tela de carregamento personalizada:

  1. Em ReplicatedFirst , crie um LocalScript.
  2. Use o seguinte exemplo de código para criar e personalizar um ObjetoScreenGui.Você pode modificar o seguinte código 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) -- Forçar a tela a aparecer por um número mínimo de segundos
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()

ScreenGuis de Referência

Em vez de criar o ScreenGui através de um LocalScript , você também pode referenciar um existente ScreenGui diretamente em seu espaço de trabalho.Certifique-se de que sua experiência inclua um ScreenGui dentro de ReplicatedFirst e que o ScreenGui inclua elementos de UI como TextLabels e ImageLabels , então defina-o como a tela de carregamento referenciando-o dentro de um LocalScript .Este método permite que você visualize facilmente sua tela de carregamento enquanto a cria.

Para demonstrar esse processo, as seguintes referências LocalScript mencionam um ScreenGui chamado Tela de Carregamento dentro de ReplicatedFirst , então removem a tela de carregamento padrão para que a única tela de carregamento que um usuário possa 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) -- Forçar a tela a aparecer por um número mínimo de segundos
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()

Adicionar animações

Além de telas de carregamento estático personalizadas, você pode adicionar animações para melhorar a tela de carregamento e indicar o progresso de carregamento.A maneira mais fácil de fazer isso é criar um elemento de UI, como um TextLabel ou ImageLabel, então animá-lo usando TweenService.Por exemplo, o seguinte código de exemplo cria um novo ScreenGui com um filho ImageLabel , remove a tela de carregamento padrão, então TweenService gira o ImageLabel continuamente até que a experiência carregue:


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) -- Forçar a tela a aparecer por um número mínimo de segundos
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()