Layar pemuatan

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Roblox menampilkan layar pemuatan default ketika pengguna terhubung ke sebuah permainan, tetapi Anda dapat mempersonalisasi permainan Anda dengan layar pemuatan kustom yang berisi konten statis atau animasi.

Implementasi

Untuk menampilkan layar pemuatan kustom, Anda dapat merancang instance ScreenGui secara langsung di dalam LocalScript, atau Anda dapat merujuk ke objek ScreenGui dalam hierarki tempat Anda. Kedua opsi menggunakan ReplicatedFirst, karena layanan ini mereplikasi instance ke klien sebelum apa pun direplikasi. Ini memastikan bahwa layar pemuatan Anda adalah hal pertama yang dilihat pengguna saat mereka memasuki permainan Anda.

Dari skrip

Untuk merancang dan menampilkan layar pemuatan kustom sepenuhnya dari LocalScript:

  1. Di ReplicatedFirst, buat sebuah LocalScript.
  2. Tempelkan kode contoh berikut untuk membuat dan menyesuaikan objek ScreenGui. Anda dapat memodifikasi kode berikut dengan nilai Anda sendiri untuk membuat desain Anda.
Layar Pemuatan yang Dibuat Skrip

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
-- Ganti nilai ScreenGui dengan milik Anda sendiri
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 = "Memuat"
textLabel.TextSize = 32
textLabel.Parent = loadingScreen
-- Hapus layar pemuatan default
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Paksa layar pemuatan kustom muncul selama minimal waktu
if not game:IsLoaded() then
game.Loaded:Wait()
end
loadingScreen:Destroy()

Dari GUI yang ada

Alih-alih membuat layar pemuatan ScreenGui sepenuhnya melalui LocalScript, Anda juga dapat merujuk ke ScreenGui yang ada dalam hierarki tempat Anda. Pastikan bahwa permainan Anda menyertakan ScreenGui yang dirujuk dalam ReplicatedFirst dan bahwa ScreenGui tersebut mencakup elemen UI seperti TextLabels dan ImageLabels.

Untuk mendemonstrasikan proses ini, LocalScript berikut merujuk ke ScreenGui bernama LoadingScreen dalam ReplicatedFirst, kemudian menghapus layar pemuatan default sehingga satu-satunya layar pemuatan yang dapat dilihat pemain adalah layar pemuatan kustom Anda.

Referensi Layar Pemuatan yang Ada

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
-- Hapus layar pemuatan default
ReplicatedFirst:RemoveDefaultLoadingScreen()
task.wait(5) -- Paksa layar muncul selama minimal beberapa detik
if not game:IsLoaded() then
game.Loaded:Wait()
end
loadingScreen:Destroy()
end

Tambahkan animasi

Selain layar pemuatan kustom statis, Anda dapat menambahkan animasi untuk meningkatkan layar pemuatan dan menunjukkan kemajuan pemuatan. Cara termudah untuk melakukannya adalah dengan membuat elemen UI, seperti TextLabel atau ImageLabel, kemudian menganimasinya menggunakan TweenService. Misalnya, kode contoh berikut membuat ScreenGui baru dengan anak ImageLabel, menghapus layar pemuatan default, kemudian TweenService memudar dan memutar elemen pusat hingga permainan dimuat.

Layar Pemuatan yang Dibuat Skrip (Animasi)

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 = "Memuat"
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
-- Hapus layar pemuatan default
ReplicatedFirst:RemoveDefaultLoadingScreen()
-- Inisiasi dan mulai tween fade-in
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()
-- Inisiasi dan mulai tween rotasi
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) -- Paksa layar muncul selama minimal beberapa detik
if not game:IsLoaded() then
game.Loaded:Wait()
end
loadingScreen:Destroy()
©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.