Caricamento delle schermate

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

Roblox visualizza 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.

Mostra 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 oggetto ScreenGui nell'area di lavoro.Entrambe le opzioni utilizzano ReplicatedFirst , poiché questo servizio replica le istanze ai client prima di qualsiasi altra cosa venga replicata.Questo garantisce che la schermata di caricamento sia la prima cosa che gli utenti vedono quando entrano nella tua esperienza.

Progettazione all'interno di LocalScripts

Per progettare e visualizzare una schermata di caricamento personalizzata:

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

ScreenGuis di riferimento

Invece di creare il ScreenGui attraverso un LocalScript , puoi anche fare riferimento a un esistente ScreenGui direttamente nel tuo spazio di lavoro.Assicurati che la tua esperienza includa un ScreenGui entro ReplicatedFirst e che il ScreenGui includa elementi dell'interfaccia utente come TextLabels e ImageLabels , quindi impostalo come schermo di caricamento facendo riferimento ad esso all'interno di un LocalScript .Questo metodo ti consente di visualizzare facilmente la schermata di caricamento mentre la crei.

Per dimostrare questo processo, le seguenti LocalScript reference a ScreenGui chiamato LoadingScreen entro ReplicatedFirst , 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 lo schermo di caricamento predefinito
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Forza lo schermo a apparire per un numero minimo di secondi
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()

Aggiungi animazioni

Oltre alle schermate di caricamento statiche personalizzate, puoi aggiungere animazioni per migliorare la schermata di caricamento e indicare il progresso di caricamento.Il modo più semplice per farlo è creare un elemento UI, come un TextLabel o un ImageLabel, quindi animarlo usando TweenService .Ad esempio, il seguente esempio di codice crea una nuova ScreenGui con un figlio ImageLabel , rimuove lo schermo di caricamento predefinito, quindi TweenService ruota il ImageLabel continuamente fino a quando l'esperienza non si carica:


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 lo schermo di caricamento predefinito
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 numero minimo di secondi
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()