Roblox zeigt einen 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.
Anzeigen von benutzerdefinierten Ladebildschirmen
Um einen benutzerdefinierten Ladebildschirm anzuzeigen, kannst du entweder eine ScreenGui direkt innerhalb einer LocalScript entwerfen oder du kannst ein ScreenGui in deinem Arbeitsbereich referenzieren.Beide Optionen nutzen ReplicatedFirst, da dieser Dienst Instanzen auf Kunden repliziert, bevor irgendetwas anderes repliziert wird.Dies gewährleistet, dass dein Ladebildschirm das erste ist, was Benutzer sehen, wenn sie deine Erlebnisbetreten.
Design innerhalb von LocalScripts
Um ein benutzerdefiniertes Ladebildschirm zu entwerfen und anzuzeigen:
- In ReplicatedFirst , erstelle ein LocalScript.
- Verwende das folgende Codebeispiel, um ein ScreenGui Objekt zu erstellen und anzupassen.Du kannst den folgenden Code mit deinen eigenen Werten modifizieren, um dein 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-- Ersetze ScreenGui-Werte durch 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-- Standard-Ladebildschirm entfernenReplicatedFirst:RemoveDefaultLoadingScreen()task.wait(5) -- Zwingen Sie den Bildschirm, für eine minimale Anzahl von Sekunden zu erscheinenif not game:IsLoaded() thengame.Loaded:Wait()endscreenGui:Destroy()
Verweis-ScreenGuis
Anstatt die ScreenGui durch eine LocalScript zu erstellen, kannst du auch eine vorhandene ScreenGui direkt in deinem Arbeitsbereich referenzieren.Stellen Sie sicher, dass Ihr Erlebnis einen ScreenGui innerhalb von ReplicatedFirst und dass der ScreenGui UI-Elemente wie TextLabels und ImageLabels enthält, dann setzen Sie es als Ladebildschirm fest, indem Sie es innerhalb eines LocalScript referenzieren.Diese Methode ermöglicht es Ihnen, Ihren Ladebildschirm leicht zu sehen, während Sie ihn erstellen.
Um diesen Prozess zu demonstrieren, verweist die folgende LocalScript Referenz auf eine ScreenGui mit dem Namen LoadingScreen innerhalb von ReplicatedFirst , entfernt dann die Standard-Ladebildschirm so, dass der einzige Ladebildschirm, den ein Benutzer sehen kann, Ihr eigener benutzerdefinierter Ladebildschirm ist:
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-- Standard-Ladebildschirm entfernenReplicatedFirst:RemoveDefaultLoadingScreen()task.wait(5) -- Zwingen Sie den Bildschirm, für eine minimale Anzahl von Sekunden zu erscheinenif not game:IsLoaded() thengame.Loaded:Wait()endscreenGui:Destroy()
Animationen hinzufügen
Zusätzlich zu statischen benutzerdefinierten Ladebildschirmen kannst du Animationen hinzufügen, um den Ladebildschirm zu verbessern und den Ladefortschritt anzugeben.Die einfachste Möglichkeit, dies zu tun, besteht darin, ein UI-Element wie TextLabel oder ImageLabel zu erstellen, dann zu animieren, indem Sie TweenService verwenden.Zum Beispiel erstellt das folgende Codebeispiel ein neues ScreenGui mit einem Kind ImageLabel , entfernt den Standard-Ladebildschirm, dann TweenService dreht das ImageLabel kontinuierlich, bis die Erfahrung geladen wird:
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-- Standard-Ladebildschirm entfernenReplicatedFirst: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) -- Zwingen Sie den Bildschirm, für eine minimale Anzahl von Sekunden zu erscheinenif not game:IsLoaded() thengame.Loaded:Wait()endscreenGui:Destroy()