Ładowanie ekranów

*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ślną stronę ładowania, gdy użytkownicy łączą się z doświadczeniem, ale możesz dostosować swoje doświadczenie za pomocą niestatycznej lub animowanej niestandardowej strony ładowania zawierającej treści statyczne lub animowane.

Wyświetlanie niestandardowych ekranów ładowania

Aby wyświetlić niestandardowy ekran ładowania, możesz zaprojektować instancję ScreenGui bezpośrednio w obrębie LocalScript lub odwołać się do obiektu ScreenGui w swojej przestrzeni roboczej.Obie opcje wykorzystują ReplicatedFirst, ponieważ ta usługa replikuje instancje do klientów przed rozpoczęciem replikacji czegokolwiek innego.Zapewnia to, że ekran ładowania jest pierwszą rzeczą, jaką widzą użytkownicy, gdy wchodzą do twojego doświadczenia.

Projektowanie w ramach LocalScripts

Aby zaprojektować i wyświetlić niestandardowy ekran ładowania:

  1. W ReplicatedFirst , utwórz LocalScript.
  2. Użyj następującego przykładu kodu, aby utworzyć i dostosować obiekt ScreenGui.Możesz modyfikować następujący kod za pomocą własnych wartości, aby stworzyć swój projekt:

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
-- Zastąp wartości ScreenGui posiadać
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
-- Usuń domyślną stronę ładowania
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Wymuszaj wyświetlanie ekranu przez minimalną liczbę sekund
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()

Referencyjne ScreenGuis

Zamiast tworzyć ScreenGui poprzez LocalScript , możesz również odwołać się do istniejącego ScreenGui bezpośrednio w swojej przestrzeni roboczej.Upewnij się, że twoje doświadczenie obejmuje ScreenGui w ciągu ReplicatedFirst i że ScreenGui obejmuje elementy interfejsu użytkownika, takie jak TextLabels i ImageLabels, a następnie ustaw je jako ekran ładowania, odwołując się do niego w ramach LocalScript .Ta metoda pozwala łatwo wyświetlać ekran ładowania, gdy go tworzysz.

Aby pokazać ten proces, następujące LocalScript odniesienia wymieniają ScreenGui nazwane Ekran ładowania w ReplicatedFirst , a następnie usuwają domyślną stronę ładowania, tak że jedyną stroną ładowania, którą może zobaczyć użytkownik, jest twoja własna niestandardowa strona ładowania:


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
-- Usuń domyślną stronę ładowania
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Wymuszaj wyświetlanie ekranu przez minimalną liczbę sekund
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()

Dodaj animacje

Oprócz statycznych ekranów ładowania niestandardowych możesz dodać animacje, aby ulepszyć ekran ładowania i wskazać postęp ładowania.Najłatwiejszym sposobem na zrobienie tego jest stworzenie elementu interfejsu użytkownika, takiego jak TextLabel lub ImageLabel, a następnie jego animowanie za pomocą TweenService.Na przykład następujący przykład kodu tworzy nową ScreenGui z dzieckiem ImageLabel , usuwa domyślną stronę ładowania, a następnie TweenService obraca ImageLabel nieprzerwanie, dopóki nie zostanie załadowane doświadczenie:


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
-- Usuń domyślną stronę ładowania
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) -- Wymuszaj wyświetlanie ekranu przez minimalną liczbę sekund
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()