Roblox, kullanıcılar bir oyuna bağlanırken varsayılan bir yükleme ekranı gösterir, ancak oyununuzu statik veya animasyonlu içeriğe sahip özel bir yükleme ekranı ile kişiselleştirebilirsiniz.
Uygulama
Özel bir yükleme ekranı göstermek için, ya ScreenGui örneğini doğrudan bir LocalScript içinde tasarlayabilir ya da oyun yer hiyerarşinizdeki bir ScreenGui nesnesine referans verebilirsiniz. Her iki seçenek de ReplicatedFirst kullanır; çünkü bu hizmet, örnekleri diğer her şeyden önce istemcilere çoğaltır. Bu, yükleme ekranınızın kullanıcıların oyuna girdiğinde gördükleri ilk şey olmasını sağlar.
Skriptten
Özel bir yükleme ekranını tamamen bir LocalScript aracılığıyla tasarlamak ve göstermek için:
- ReplicatedFirst içinde bir LocalScript oluşturun.
- Aşağıdaki kod örneğini yapıştırarak bir ScreenGui nesnesi oluşturun ve özelleştirin. Tasarımınızı oluşturmak için aşağıdaki kodu kendi değerlerinizle değiştirebilirsiniz.
Script-Created Loading Screenlocal Players = game:GetService("Players")local ReplicatedFirst = game:GetService("ReplicatedFirst")local player = Players.LocalPlayerlocal playerGui = player:WaitForChild("PlayerGui")local loadingScreen = Instance.new("ScreenGui")loadingScreen.IgnoreGuiInset = trueloadingScreen.Parent = playerGui-- ScreenGui değerlerini kendi değerlerinizle değiştirinlocal textLabel = Instance.new("TextLabel")textLabel.Size = UDim2.new(1, 0, 1, 0)textLabel.BackgroundColor3 = Color3.fromRGB(0, 20, 40)textLabel.Font = Enum.Font.DenkOnetextLabel.TextColor3 = Color3.new(0.8, 0.8, 0.8)textLabel.Text = "Yükleniyor"textLabel.TextSize = 32textLabel.Parent = loadingScreen-- Varsayılan yükleme ekranını kaldırınReplicatedFirst:RemoveDefaultLoadingScreen()task.wait(5) -- Özel yükleme ekranının en az bir süre görünmesini sağlaif not game:IsLoaded() thengame.Loaded:Wait()endloadingScreen:Destroy()
Mevcut GUI'den
Yükleme ekranı ScreenGui'sini tamamen bir LocalScript aracılığıyla oluşturmak yerine, oyun yer hiyerarşinizde mevcut bir ScreenGui'ye de referans verebilirsiniz. Oyununuzun, ReplicatedFirst içinde referans verilen ScreenGui'yi içerdiğinden ve ScreenGui'nin TextLabels ve ImageLabels gibi UI öğelerini içerdiğinden emin olun.
Bu süreci göstermek için, aşağıdaki LocalScript, ReplicatedFirst içindeki LoadingScreen adlı bir ScreenGui'ye referans verir, ardından varsayılan yükleme ekranını kaldırır, böylece bir oyuncunun görebileceği tek yükleme ekranı özel yükleme ekranınızdır.
Reference Existing Loading Screenlocal Players = game:GetService("Players")local ReplicatedFirst = game:GetService("ReplicatedFirst")local player = Players.LocalPlayerlocal playerGui = player:WaitForChild("PlayerGui")local loadingScreen = ReplicatedFirst:FindFirstChild("LoadingScreen")if loadingScreen thenloadingScreen.IgnoreGuiInset = trueloadingScreen.Parent = playerGui-- Varsayılan yükleme ekranını kaldırınReplicatedFirst:RemoveDefaultLoadingScreen()task.wait(5) -- Ekranın en az bir süre görünmesini sağlaif not game:IsLoaded() thengame.Loaded:Wait()endloadingScreen:Destroy()end
Animasyon ekleme
Statik özel yükleme ekranlarına ek olarak, yükleme ekranını geliştirmek ve yükleme ilerlemesini göstermek için animasyonlar ekleyebilirsiniz. Bunu yapmanın en kolay yolu, bir TextLabel veya ImageLabel gibi bir UI öğesi oluşturmak ve ardından bunu TweenService kullanarak animasyona tabi tutmaktır. Örneğin, aşağıdaki kod örneği, bir ImageLabel çocuğu olan yeni bir ScreenGui oluşturur, varsayılan yükleme ekranını kaldırır, ardından TweenService merkezi öğeleri oyunun yüklenene kadar yavaşça görünür hale getirir ve döndürür.
Script-Created Loading Screen (Animated)local Players = game:GetService("Players")local ReplicatedFirst = game:GetService("ReplicatedFirst")local TweenService = game:GetService("TweenService")local player = Players.LocalPlayerlocal playerGui = player:WaitForChild("PlayerGui")local loadingScreen = Instance.new("ScreenGui")loadingScreen.IgnoreGuiInset = trueloadingScreen.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.DenkOnetextLabel.TextColor3 = Color3.new(0.8, 0.8, 0.8)textLabel.Text = "Yükleniyor"textLabel.TextSize = 32textLabel.TextTransparency = 1textLabel.Parent = loadingScreenlocal 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.ImageTransparency = 1loadingRing.Parent = loadingScreen-- Varsayılan yükleme ekranını kaldırınReplicatedFirst:RemoveDefaultLoadingScreen()-- Fade-in tweens'lerini başlat ve başlatlocal 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()-- Dönme tween'ini başlat ve başlatlocal tweenInfo = TweenInfo.new(4, Enum.EasingStyle.Linear, Enum.EasingDirection.In, -1)local tween = TweenService:Create(loadingRing, tweenInfo, {Rotation = 360})tween:Play()task.wait(5) -- Ekranın en az bir süre görünmesini sağlaif not game:IsLoaded() thengame.Loaded:Wait()endloadingScreen:Destroy()