تعرض Roblox شاشة تحميل افتراضية عندما يقوم المستخدمون بالاتصال بلعبة، ولكن يمكنك تخصيص لعبتك بشاشة تحميل مخصصة تحتوي على محتوى ثابت أو متحرك.
التنفيذ
لعرض شاشة تحميل مخصصة، يمكنك إما تصميم كائن ScreenGui مباشرة داخل LocalScript، أو يمكنك الإشارة إلى كائن ScreenGui في هيكل لعبتك. كلا الخيارين يستخدم ReplicatedFirst، حيث أن هذه الخدمة تقوم بتكرار الكائنات إلى العملاء قبل أي شيء آخر يتم تكراره. وهذا يضمن أن شاشة التحميل الخاصة بك هي أول شيء يراه المستخدمون عندما يدخلون إلى لعبتك.
من السكربت
لتصميم وعرض شاشة تحميل مخصصة بالكامل من LocalScript:
- في ReplicatedFirst، أنشئ LocalScript.
- الصق في نموذج الكود التالي لإنشاء وتخصيص كائن ScreenGui. يمكنك تعديل الكود التالي بقيمك الخاصة لإنشاء تصميمك.
شاشة تحميل تم إنشاؤها بواسطة السكربتlocal 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 بقيمك الخاصةlocal 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 = "جارٍ التحميل"textLabel.TextSize = 32textLabel.Parent = loadingScreen-- أزل شاشة التحميل الافتراضيةReplicatedFirst:RemoveDefaultLoadingScreen()task.wait(5) -- فرض ظهور شاشة التحميل المخصصة لوقت حد أدنىif not game:IsLoaded() thengame.Loaded:Wait()endloadingScreen:Destroy()
من واجهة مستخدم موجودة
بدلاً من إنشاء شاشة تحميل ScreenGui بالكامل من خلال LocalScript، يمكنك أيضًا الإشارة إلى ScreenGui موجود في هيكل لعبتك. تأكد من أن لعبتك تتضمن ScreenGui المشار إليه داخل ReplicatedFirst وأن ScreenGui يتضمن عناصر واجهة مستخدم مثل TextLabels و ImageLabels.
لتوضيح هذه العملية، يشير LocalScript التالي إلى ScreenGui باسم LoadingScreen داخل ReplicatedFirst، ثم يزيل شاشة التحميل الافتراضية حتى تكون شاشة التحميل الوحيدة التي يمكن للاعب رؤيتها هي شاشتك المخصصة.
الإشارة إلى شاشة تحميل موجودةlocal 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-- أزل شاشة التحميل الافتراضيةReplicatedFirst:RemoveDefaultLoadingScreen()task.wait(5) -- فرض ظهور الشاشة لعدد معين من الثوانيif not game:IsLoaded() thengame.Loaded:Wait()endloadingScreen:Destroy()end
إضافة الرسوم المتحركة
بالإضافة إلى شاشات التحميل الثابتة المخصصة، يمكنك إضافة رسوم متحركة لتعزيز شاشة التحميل وإظهار تقدم التحميل. أسهل طريقة للقيام بذلك هي إنشاء عنصر واجهة مستخدم، مثل TextLabel أو ImageLabel، ثم تحريكه باستخدام TweenService. على سبيل المثال، ينشئ نموذج الكود التالي ScreenGui جديدة مع كائن فرعي ImageLabel، ويزيل شاشة التحميل الافتراضية، ثم يقوم TweenService بإجراء تلاشي وتدوير العناصر المركزية حتى يتم تحميل اللعبة.
شاشة تحميل تم إنشاؤها بواسطة السكربت (متحركة)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 = "جارٍ التحميل"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-- أزل شاشة التحميل الافتراضيةReplicatedFirst:RemoveDefaultLoadingScreen()-- بدء وتطبيق تأثيرات التلاشي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()-- بدء وتطبيق تأثير الدوران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) -- فرض ظهور الشاشة لعدد معين من الثوانيif not game:IsLoaded() thengame.Loaded:Wait()endloadingScreen:Destroy()