Ekrany ładowania

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Roblox wyświetla domyślny ekran ładowania, kiedy użytkownicy łączą się z grą, ale możesz spersonalizować swoją grę, tworząc niestandardowy ekran ładowania, który zawiera treści statyczne lub animowane.

Implementacja

Aby wyświetlić niestandardowy ekran ładowania, możesz albo zaprojektować instancję ScreenGui bezpośrednio w LocalScript, albo możesz odwołać się do obiektu ScreenGui w hierarchii swojego miejsca. Obie opcje wykorzystują ReplicatedFirst, ponieważ ta usługa replikuje instancje do klientów przed replikowaniem czegokolwiek innego. Gwarantuje to, że ekran ładowania jest pierwszą rzeczą, którą użytkownicy widzą, kiedy wchodzą do twojej gry.

Z poziomu skryptu

Aby zaprojektować i wyświetlić niestandardowy ekran ładowania całkowicie z poziomu LocalScript:

  1. Wklej poniższy fragment kodu, aby utworzyć i dostosować obiekt ScreenGui. Możesz zmodyfikować poniższy kod, wprowadzając własne wartości, aby stworzyć swój projekt.
Ekran ładowania stworzony przez skrypt

local Players = game:GetService("Players")
local ReplicatedFirst = game:GetService("ReplicatedFirst")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local loadingScreen = Instance.new("ScreenGui")
loadingScreen.IgnoreGuiInset = true
loadingScreen.Parent = playerGui
-- Zamień wartości ScreenGui swoimi własnymi
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.BackgroundColor3 = Color3.fromRGB(0, 20, 40)
textLabel.Font = Enum.Font.DenkOne
textLabel.TextColor3 = Color3.new(0.8, 0.8, 0.8)
textLabel.Text = "Ładowanie"
textLabel.TextSize = 32
textLabel.Parent = loadingScreen
-- Usuń domyślny ekran ładowania
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Wymuś, aby niestandardowy ekran ładowania pojawił się na minimum przez 5 sekund
if not game:IsLoaded() then
game.Loaded:Wait()
end
loadingScreen:Destroy()

Z istniejącego GUI

Zamiast tworzyć ekran ładowania ScreenGui całkowicie przez LocalScript, możesz również odwołać się do istniejącego ScreenGui w hierarchii swojego miejsca. Upewnij się, że twoja gra zawiera odwoływany ScreenGui w ReplicatedFirst oraz że ScreenGui zawiera elementy UI, takie jak TextLabels i ImageLabels.

Aby zademonstrować ten proces, poniższy LocalScript odnosi się do ScreenGui o nazwie LoadingScreen w ReplicatedFirst, a następnie usuwa domyślny ekran ładowania, tak aby jedynym ekranem ładowania, jaki gracz może zobaczyć, był twój niestandardowy ekran ładowania.

Referencja istniejącego ekranu ładowania

local Players = game:GetService("Players")
local ReplicatedFirst = game:GetService("ReplicatedFirst")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local loadingScreen = ReplicatedFirst:FindFirstChild("LoadingScreen")
if loadingScreen then
loadingScreen.IgnoreGuiInset = true
loadingScreen.Parent = playerGui
-- Usuń domyślny ekran ładowania
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Wymuś, aby ekran pojawił się na minimum przez 5 sekund
if not game:IsLoaded() then
game.Loaded:Wait()
end
loadingScreen:Destroy()
end

Dodaj animacje

Oprócz statycznych niestandardowych ekranów ładowania, możesz dodać animacje, aby ulepszyć ekran ładowania i wskazać postęp ładowania. Najłatwiejszym sposobem na to jest stworzenie elementu UI, takiego jak TextLabel lub ImageLabel, a następnie animowanie go z użyciem TweenService. Na przykład, poniższy fragment kodu tworzy nowy ScreenGui z dzieckiem ImageLabel, usuwa domyślny ekran ładowania, a następnie TweenService powoduje, że centralne elementy stopniowo się pojawiają i obracają, aż gra się załaduje.

Ekran ładowania stworzony przez skrypt (animowany)

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 loadingScreen = Instance.new("ScreenGui")
loadingScreen.IgnoreGuiInset = true
loadingScreen.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.DenkOne
textLabel.TextColor3 = Color3.new(0.8, 0.8, 0.8)
textLabel.Text = "Ładowanie"
textLabel.TextSize = 32
textLabel.TextTransparency = 1
textLabel.Parent = loadingScreen
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.ImageTransparency = 1
loadingRing.Parent = loadingScreen
-- Usuń domyślny ekran ładowania
ReplicatedFirst:RemoveDefaultLoadingScreen()
-- Rozpocznij i uruchom fade-in tweens
local fadeTweenInfo = TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 0, false, 2)
local fadeTween1 = TweenService:Create(textLabel, fadeTweenInfo, {TextTransparency = 0})
local fadeTween2 = TweenService:Create(loadingRing, fadeTweenInfo, {ImageTransparency = 0})
fadeTween1:Play()
fadeTween2:Play()
-- Rozpocznij i uruchom rotation tween
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) -- Wymuś, aby ekran pojawił się na minimum przez 5 sekund
if not game:IsLoaded() then
game.Loaded:Wait()
end
loadingScreen:Destroy()
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.