Roblox zeigt eine Standard-Ladebildschirm an, wenn Benutzer sich mit einem Erlebnis verbinden, aber du kannst dein Erlebnis mit einem benutzerdefinierten Ladebildschirm personalisieren, der statische oder animierte Inhalte enthält.
Benutzerdefinierte Ladebildschirme anzeigen
Um einen benutzerdefinierten Ladebildschirm anzuzeigen, kannst du entweder ein ScreenGui Instanz direkt innerhalb eines LocalScript , oder du kannst auf ein ScreenGui -Objekt in deinem Arbeitsbereich verweisen. Beide Optionen verwenden 2>Class.ReplicatedFirst2>,
Design innerhalb von LocalScripts
Um einen benutzerdefinierten Ladebildschirm zu entwerfen und anzuzeigen:
- In ReplicatedFirst erstellen Sie ein LocalScript .
- Verwenden Sie das folgende Codebeispiel, um ein ScreenGui -Objekt zu erstellen und anzupassen. Sie können den folgenden Code mit Ihren eigenen Werten modifizieren, um Ihr Design zu erstellen:
local Players = game:GetService("Players")local ReplicatedFirst = game:GetService("ReplicatedFirst")local player = Players.LocalPlayerlocal playerGui = player:WaitForChild("PlayerGui")local screenGui = Instance.new("ScreenGui")screenGui.IgnoreGuiInset = truescreenGui.Parent = playerGui-- Ersetzen Sie ScreenGUI- Werte mit Ihren besitzenlocal textLabel = Instance.new("TextLabel")textLabel.Size = UDim2.new(1, 0, 1, 0)textLabel.BackgroundColor3 = Color3.fromRGB(0, 20, 40)textLabel.Font = Enum.Font.GothamMediumtextLabel.TextColor3 = Color3.new(0.8, 0.8, 0.8)textLabel.Text = "Loading"textLabel.TextSize = 28textLabel.Parent = screenGui-- Entfernen Sie den Standard-LadebildschirmReplicatedFirst:RemoveDefaultLoadingScreen()task.wait(5) -- Zwangsschirm für eine minimale Anzahl von Sekunden anzeigenif not game:IsLoaded() thengame.Loaded:Wait()endscreenGui:Destroy()
ScreenGuis beziehen
Statt durch einen LocalScript zu erstellen, kannst du auch auf ein vorhandenes
Um diesen Prozess zu demonstrieren, verweist die folgende <a href="https://code.eu/local/Class.LocalScript"> Class.ScreenGui</a> auf einen <k>Class.ScreenGui</k> mit dem Namen <a>Class.LoadingScreen</a> innerhalb von <k>Class.ReplicatedFirst</k>, und entfernt dann den Standard-Ladebildschirm, sodass der einzige Ladebildschirm, den ein Benutzer sehen kann, ist Ihr benutzerdefiniertes Ladebildschirm:
local Players = game:GetService("Players")local ReplicatedFirst = game:GetService("ReplicatedFirst")local player = Players.LocalPlayerlocal playerGui = player:WaitForChild("PlayerGui")local screenGui = ReplicatedFirst.LoadingScreenscreenGui.IgnoreGuiInset = truescreenGui.Parent = playerGui-- Entfernen Sie den Standard-LadebildschirmReplicatedFirst:RemoveDefaultLoadingScreen()task.wait(5) -- Zwangsschirm für eine minimale Anzahl von Sekunden anzeigenif not game:IsLoaded() thengame.Loaded:Wait()endscreenGui:Destroy()
Animationen hinzufügen
Neben statischen benutzerdefinierten Ladebildschirmen können Sie Animationen hinzufügen, um den Ladebildschirm zu verbessern und den Ladefortschritt an
local Players = game:GetService("Players")local ReplicatedFirst = game:GetService("ReplicatedFirst")local TweenService = game:GetService("TweenService")local player = Players.LocalPlayerlocal playerGui = player:WaitForChild("PlayerGui")local screenGui = Instance.new("ScreenGui")screenGui.IgnoreGuiInset = truescreenGui.Parent = playerGuilocal textLabel = Instance.new("TextLabel")textLabel.Size = UDim2.new(1, 0, 1, 0)textLabel.BackgroundColor3 = Color3.fromRGB(0, 20, 40)textLabel.Font = Enum.Font.GothamMediumtextLabel.TextColor3 = Color3.new(0.8, 0.8, 0.8)textLabel.Text = "Loading"textLabel.TextSize = 28textLabel.Parent = screenGuilocal loadingRing = Instance.new("ImageLabel")loadingRing.Size = UDim2.new(0, 256, 0, 256)loadingRing.BackgroundTransparency = 1loadingRing.Image = "rbxassetid://4965945816"loadingRing.AnchorPoint = Vector2.new(0.5, 0.5)loadingRing.Position = UDim2.new(0.5, 0, 0.5, 0)loadingRing.Parent = screenGui-- Entfernen Sie den Standard-LadebildschirmReplicatedFirst: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) -- Zwangsschirm für eine minimale Anzahl von Sekunden anzeigenif not game:IsLoaded() thengame.Loaded:Wait()endscreenGui:Destroy()