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 puedes personalizar tu experiencia con una pantalla de carga personalizada que contenga contenido estático o animado.

Mostrar pantallas de carga personalizadas

Para mostrar una pantalla de carga personalizada, puedes diseñar una instancia ScreenGui directamente dentro de una LocalScript , o puedes referenciar un objeto ScreenGui en tu espacio de trabajo.Ambas opciones utilizan ReplicatedFirst , como este servicio que replica instancias a los clientes antes de que se replique cualquier otra cosa.Esto garantiza que su pantalla de carga sea lo primero que ven los usuarios cuando ingresan a su experiencia.

Diseño dentro de LocalScripts

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

  1. En ReplicatedFirst , crea un LocalScript.
  2. Usa el siguiente ejemplo de código 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
-- Reemplazar 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
-- Eliminar la pantalla de carga predeterminada
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Fuerza a que la pantalla aparezca durante un número mínimo de segundos
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()

ScreenGuis de referencia

En lugar de crear el ScreenGui a través de un LocalScript , también puedes referenciar un existente ScreenGui directamente en tu espacio de trabajo.Asegúrese de que su experiencia incluya un ScreenGui dentro de ReplicatedFirst y que el ScreenGui incluya elementos de interfaz de usuario como TextLabels y ImageLabels , luego configúelo como la pantalla de carga al referirse a ella dentro de una LocalScript .Este método te permite ver fácilmente tu pantalla de carga mientras la creas.

Para demostrar este proceso, las siguientes LocalScript referencias se refieren a ScreenGui una Pantalla de carga llamada dentro de ReplicatedFirst , luego elimina la pantalla de carga predeterminada para que la única pantalla de carga que un usuario pueda ver sea tu 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
-- Eliminar la pantalla de carga predeterminada
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Fuerza a que la pantalla aparezca durante 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, puedes agregar animaciones para mejorar la pantalla de carga y indicar el progreso de carga.La manera más fácil de hacer esto es crear un elemento de interfaz de usuario, como un TextLabel o ImageLabel , luego animarlo usando TweenService .Por ejemplo, el siguiente ejemplo de código crea un nuevo ScreenGui con un hijo ImageLabel , elimina la pantalla de carga predeterminada, luego TweenService gira el ImageLabel continuamente hasta que se cargue la experiencia:


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
-- Eliminar 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) -- Fuerza a que la pantalla aparezca durante un número mínimo de segundos
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()