Cargando pantallas

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Roblox muestra una pantalla de carga predeterminada cuando los usuarios se conectan a una experiencia, pero puede personalizar su experiencia con una pantalla de carga personalizada que contiene contenido estático o animado.

Mostrando pantallas de carga personalizadas

Para mostrar una pantalla de carga personalizada, puedes diseñar una instancia de ScreenGui directamente dentro de un LocalScript , o puedes referenciar un objeto de ScreenGui en tu espacio de trabajo. Ambas opciones utilizan 2>Class.ReplicatedFirst2>, ya que este servicio que replica las instancias

Diseñando dentro de LocalScripts

Para diseñar y mostrar una pantalla de carga personalizada:

  1. En ReplicatedFirst , crea un LocalScript .
  2. Usa el siguiente código de ejemplo para crear y personalizar un objeto ScreenGui . Puedes modificar el siguiente código con tus propios valores para crear tu diseño:

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
-- Reemplace los valores de ScreenGUI con los en posesión
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
-- Elimina la pantalla de carga predeterminada
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Obliga a la pantalla a aparecer por un número mínimo de segundos
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()

Referencia a ScreenGuis

En lugar de crear el ScreenGui a través de un LocalScript , puedes también refer

Para demostrar este proceso, las siguientes referencias de LocalScript a un ScreenGui llamado Cargando pantalla dentro de 2>Class.ReplicatedFirst2> , luego elimina la pantalla de carga predeterminada para que la única pantalla de carga que el usuario puede ver sea la suya propia pantalla de carga 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
-- Elimina la pantalla de carga predeterminada
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Obliga a la pantalla a aparecer por un número mínimo de segundos
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()

Añadir animaciones

Además de las pantallas de carga estáticas personalizadas, puede agregar animaciones para mejorar la pantalla de carga y progresar el progreso de la carga. La manera más


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
-- Elimina la pantalla de carga predeterminada
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) -- Obliga a la pantalla a aparecer por un número mínimo de segundos
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()