O Roblox exibe uma tela de carregamento padrão quando os usuários se conectam 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 Tela de Carregamento Personalizada
Para exibir uma tela de carregamento personalizada, você pode projetar uma instância de ScreenGui diretamente dentro de um LocalScript , ou você pode referenciar um ScreenGui objeto em seu espaço de trabalho. Ambas as opções utilizam 2>Class.ReplicatedFirst2>, como este serviço que
Projetando dentro de LocalScripts
Para projetar e exibir uma tela de carregamento personalizada:
- Em ReplicatedFirst , crie um LocalScript.
- Use o seguinte código de exemplo 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.LocalPlayerlocal playerGui = player:WaitForChild("PlayerGui")local screenGui = Instance.new("ScreenGui")screenGui.IgnoreGuiInset = truescreenGui.Parent = playerGui-- Substituir os valores do ScreenGUI com os possuirlocal textLabel = Instance.new("TextLabel")textLabel.Size = UDim2.new(1, 0, 1, 0)textLabel.BackgroundColor3 = Color3.fromRGB(0, 20, 40)textLabel.Font = Enum.Font.GothamMediumtextLabel.TextColor3 = Color3.new(0.8, 0.8, 0.8)textLabel.Text = "Loading"textLabel.TextSize = 28textLabel.Parent = screenGui-- Remova a tela de carregamento padrãoReplicatedFirst:RemoveDefaultLoadingScreen()task.wait(5) -- Forçar a tela a aparecer por um número mínimo de segundosif not game:IsLoaded() thengame.Loaded:Wait()endscreenGui:Destroy()
Referência a ScreenGuis
Em vez de criar o ScreenGui através de um LocalScript
Para mostrar esse processo, as seguintes referências LocalScript referem-se a um ScreenGui chamado LoadingScreen dentro de 1> Class.ReplicatedFirst1>, e então remove o ecrã 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.LocalPlayerlocal playerGui = player:WaitForChild("PlayerGui")local screenGui = ReplicatedFirst.LoadingScreenscreenGui.IgnoreGuiInset = truescreenGui.Parent = playerGui-- Remova a tela de carregamento padrãoReplicatedFirst:RemoveDefaultLoadingScreen()task.wait(5) -- Forçar a tela a aparecer por um número mínimo de segundosif not game:IsLoaded() thengame.Loaded:Wait()endscreenGui:Destroy()
Adicionando Animações
Além de telas de carregamento estáticas personalizadas, você pode adicionar animações para melhorar a tela de carregamento e indicar o progresso de carregamento
local Players = game:GetService("Players")local ReplicatedFirst = game:GetService("ReplicatedFirst")local TweenService = game:GetService("TweenService")local player = Players.LocalPlayerlocal playerGui = player:WaitForChild("PlayerGui")local screenGui = Instance.new("ScreenGui")screenGui.IgnoreGuiInset = truescreenGui.Parent = playerGuilocal textLabel = Instance.new("TextLabel")textLabel.Size = UDim2.new(1, 0, 1, 0)textLabel.BackgroundColor3 = Color3.fromRGB(0, 20, 40)textLabel.Font = Enum.Font.GothamMediumtextLabel.TextColor3 = Color3.new(0.8, 0.8, 0.8)textLabel.Text = "Loading"textLabel.TextSize = 28textLabel.Parent = screenGuilocal loadingRing = Instance.new("ImageLabel")loadingRing.Size = UDim2.new(0, 256, 0, 256)loadingRing.BackgroundTransparency = 1loadingRing.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ãoReplicatedFirst: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 segundosif not game:IsLoaded() thengame.Loaded:Wait()endscreenGui:Destroy()