كشك الصور

*This content is translated using AI (Beta) and may contain errors. To view this page in English, click here.

أخذ صورة هو وسيلة مثالية لتخليد تجربة رائعة. إن وحدة PhotoBooth للمطور هي أداة staging للصور سهلة الاستخدام تتيح للاعبين أن يتخذوا وضعاً فريداً مع خلفية تمثل تجربتهم.

استخدام الوحدة

التثبيت

لاستخدام وحدة PhotoBooth في تجربة:

  1. من قائمة Window في الاستوديو أو شريط أدوات علامة Home، افتح Toolbox واختر علامة Creator Store.

  2. تأكد من تحديد تصنيف Models، ثم انقر على زر See All لفئات Categories.

  3. حدد وانقر على بلاطة Packages.

  4. ابحث عن وحدة Photo Booth وانقر عليها، أو اسحبها وأفلتها في العرض ثلاثي الأبعاد.

  5. في نافذة Explorer، انقل نموذج PhotoBooth بالكامل إلى ReplicatedStorage. عند تشغيل التجربة، ستبدأ الوحدة في التشغيل.

وضع الكشك

تأتي الوحدة مع نموذج PhotoBooth واحد يمكنك وضعه في العالم ثلاثي الأبعاد. هذا النموذج هو ما سيتفاعل معه اللاعبون لإعداد صورة.

  1. انقر على الشبكة PhotoBooth داخل مجلد Workspace في المجلد الرئيسي للوحدة.

  2. انقله إلى تسلسل Workspace العلوي وضعه في المكان المطلوب.

التكوين

تم تكوين الوحدة مسبقًا للعمل في معظم حالات الاستخدام، ولكن يمكن تخصيصها بسهولة من خلال وظيفة configure. على سبيل المثال، لتغيير الرسالة الافتراضية في أسفل الصورة:

  1. في StarterPlayerScripts، أنشئ LocalScript جديدًا وأعد تسميته إلى ConfigurePhotoBooth.

  2. الصق الكود التالي في البرنامج النصي الجديد.

    LocalScript - ConfigurePhotoBooth

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
    PhotoBooth.configure({
    frameMessage = "أول صورة في كشك الصور!",
    })

الاتصال بالأحداث

في كل مرة يعرض كشك الصور شاشة جديدة لعميل محلي، يتم إطلاق حدث مطابق. يمكن الاتصال بهذه الأحداث في LocalScript بحيث يمكنك الاستجابة بمنطقك المخصص.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.countdownStarted:Connect(function()
print("بدأ العد التنازلي")
end)
PhotoBooth.printoutShown:Connect(function()
print("يتم عرض الطباعة")
end)
PhotoBooth.promptShown:Connect(function()
print("يتم عرض مطالبة الكاميرا")
end)

رؤية واجهة المستخدم

بشكل افتراضي، يخفي كشك الصور جميع ScreenGuis و CoreGuis عندما يتم إعداد صورة. إذا كنت ترغب في تجاوز هذا السلوك الآلي وإصدار القرار برمجيًا بشأن أي واجهات يجب أن تظل مرئية، قم بإدراج الدالتين hideOtherGuis و showOtherGuis واستجب بمنطقك المخصص.

LocalScript

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local StarterGui = game:GetService("StarterGui")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local hiddenInstances = {}
-- أنشئ واجهة شاشة لن يتم إخفاؤها
local specialGuiInstance = Instance.new("ScreenGui")
-- ارسم واجهة الشاشة فوق واجهة كشك الصور
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- تعيين السمة على واجهة الشاشة لمنع الإخفاء
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- إضافة نص إلى واجهة المستخدم
local specialLabel = Instance.new("TextLabel")
specialLabel.Size = UDim2.fromScale(1, 0.1)
specialLabel.Text = "تبقى مرئية عند أخذ صورة"
specialLabel.Font = Enum.Font.GothamMedium
specialLabel.TextSize = 24
specialLabel.Parent = specialGuiInstance
PhotoBooth.hideOtherGuis(function()
-- إخفاء جميع واجهات الشاشة المحددة من قبل المطور باستثناء تلك المميزة بالخاصية
local instances = playerGui:GetChildren()
for _, instance in instances do
if instance:IsA("ScreenGui") and not instance:GetAttribute("ShowInPhotoBooth") and instance.Enabled then
instance.Enabled = false
table.insert(hiddenInstances, instance)
end
end
-- إخفاء واجهات جذرية محددة
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- إظهار جميع واجهات الشاشة المحددة من قبل المطور التي تم إخفاؤها
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- إظهار واجهات جذرية محددة تم إخفاؤها
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

مرجع API

الوظائف

configure

configure(config: table)

يتجاوز خيارات التكوين الافتراضية من خلال المفاتيح/القيم التالية في جدول config. يمكن استدعاء هذه الوظيفة فقط من LocalScript.

مفتاحالوصفالافتراضي
frameMessageالرسالة التي تظهر في أسفل الصورة. يمكن التحكم في مدتها من خلال خاصية fadeUiDelay."استخدم جهازك لالتقاط صورة ومشاركتها!"
fadeUiDelayالوقت لعرض رسالة الإطار قبل أن تتلاشى، بالثواني. اضبطها على رقم سالب لتجنب التلاشي.3
closeButtonImageالصورة المستخدمة لزر إغلاق الصورة، الموضوعة فوق الصورة الخلفية closeButtonBackgroundImage."rbxassetid://7027440823"
closeButtonBackgroundImageصورة الخلفية المستخدمة لزر إغلاق الصورة."rbxassetid://7027440891"
cameraLandscapePositionمسافة كاميرا كشك الصور، في الأمام والأعلى من الشخصية، عند التقاط صورة في وضع الأفق (Vector2).(5, 2)
cameraPortraitPositionمسافة كاميرا كشك الصور، في الأمام والأعلى من الشخصية، عند التقاط صورة في وضع العمود (Vector2).(10, 1)
countdownFontالخط المستخدم للأرقام في العد التنازلي (Enum.Font).GothamBlack
countdownTextColorلون الأرقام في العد التنازلي (Color3).[255, 255, 255]
printoutCharacterPositionموضع الشخصية على الشاشة عند عرض الطباعة (UDim2).(0.5, 0, 0.5, 0)
printoutCharacterSizeكمية مساحة الشاشة التي تشغلها الشخصية في الطباعة (UDim2).(1, 0, 1, 0)
characterAnimationمعرف الأصول للحركة التي تأخذها الشخصية في الصورة، متوقفة عند الإطار الأول."rbxassetid://6899663224"
filterImageصورة تطبق على الصورة كمرشح. إذا كانت nil, سيتم استخدام فلتر افتراضي يظلم حواف الصورة.nil
LocalScript - ConfigurePhotoBooth

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.configure({
frameMessage = "ما أجمل هذه الوضعية!",
fadeUiDelay = 5,
maxActivationDistance = 5,
printoutCharacterSize = UDim2.fromScale(1.5, 1.5),
})

setBackgrounds

setBackgrounds(backgrounds: table)

يتجاوز الخلفيات الافتراضية المقدمة من كشك الصور. يجب أن تكون صور الخلفية بنسبة عرض إلى ارتفاع 16:9 (1024×576) للحصول على تجربة مثالية ويجب تضمين معرفاتها في مصفوفة الخلفيات. يمكن تقديم 1-4 (شاملة) خلفيات.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.setBackgrounds({
"rbxassetid://7018713114",
"rbxassetid://950538356",
})

الأحداث

countdownStarted

يتم تشغيله عند بدء العد التنازلي. يمكن الاتصال بهذا الحدث فقط في LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.countdownStarted:Connect(function()
print("بدأ العد التنازلي")
end)

printoutShown

يتم تشغيله عند عرض الطباعة للمستخدم. يمكن الاتصال بهذا الحدث فقط في LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.printoutShown:Connect(function()
print("يتم عرض الطباعة")
end)

promptShown

يتم تشغيله عندما يتم إغلاق الطباعة وتظهر زر الكاميرا مرة أخرى. يمكن الاتصال بهذا الحدث فقط في LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.promptShown:Connect(function()
print("يتم عرض مطالبة الكاميرا")
end)

الاستدعاءات

hideOtherGuis

hideOtherGuis(callback: function)

يتم تشغيل هذه الاستدعاء مباشرة قبل عرض الطباعة، مما يتيح لك تعطيل جميع ScreenGuis أو العناصر داخلها قبل عرض الطباعة. تمتلك واجهات المستخدم المستخدمة من قبل كشك الصور صفة ShowInPhotoBooth مع تعيينها إلى true. انظر رؤية واجهة المستخدم للحصول على التفاصيل وعينة من الكود.

showOtherGuis

showOtherGuis(callback: function)

يتم تشغيل هذه الاستدعاء بعد إغلاق الطباعة، مما يتيح لك إعادة تمكين جميع ScreenGuis أو العناصر داخلها. تمتلك واجهات المستخدم المستخدمة من قبل كشك الصور صفة ShowInPhotoBooth مع تعيينها إلى true. انظر رؤية واجهة المستخدم للحصول على التفاصيل وعينة من الكود.

©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.