Schermi di caricamento

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Roblox mostra uno schermo di caricamento predefinito quando gli utenti si connettono a un'esperienza, ma puoi personalizzare la tua esperienza con uno schermo di caricamento personalizzato che contiene contenuti statici o animati.

Schermi di caricamento personalizzati

Per visualizzare uno schermo di caricamento personalizzato, puoi progettare un'istanza ScreenGui direttamente all'interno di un LocalScript , oppure puoi fare riferimento a un'istanza ScreenGui nel tuo spazio di esperienza. Entrambe le opzioni utilizzano 2>

Progettazione all'interno di LocalScripts

Per progettare e visualizzare uno schermo di caricamento personalizzato:

  1. In ReplicatedFirst , crea un LocalScript .
  2. Usa il seguente esempio di codice per creare e personalizzare un oggetto ScreenGui . Puoi modificare il seguente codice con i tuoi valori per creare il tuo 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
-- Rimpiazza i valori di ScreenGUI con i Proprio
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
-- Rimuovi la schermata di caricamento predefinita
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Forza lo schermo a apparire per un minimo di secondi
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()

Referente ScreenGuis

Invece di creare il ScreenGui attraverso un LocalScript , puoi

Per dimostrare questo processo, il seguente LocalScript fa riferimento a un ScreenGui chiamato LoadingScreen all'interno di 1> Class.ReplicatedFirst1>, quindi rimuove la schermata di caricamento predefinita in modo che l'unica schermata di caricamento che un utente può vedere sia la tua schermata di caricamento personalizzata:


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
-- Rimuovi la schermata di caricamento predefinita
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Forza lo schermo a apparire per un minimo di secondi
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()

Aggiungere Animazioni

Oltre a schermi di caricamento statici personalizzati, puoi aggiungere animazioni per migliorare lo schermo di caricamento e indicare il progresso di caric


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
-- Rimuovi la schermata di caricamento predefinita
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) -- Forza lo schermo a apparire per un minimo di secondi
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()