Fotoğraf çekmek, harika bir deneyimi anmak için mükemmel bir yoldur.The Fotoğraf Makinesi geliştirici modülü kolayca kullanılabilen bir fotoğraf sahneleme aracıdır, ki oyuncular deneyimlerini temsil eden bir arka planla benzersiz bir poz verebilir.
Modül kullanımı
Yükleme
Bir deneyimde Fotoğraf Makinesi modülünü kullanmak için:
Modellerin sıralanması seçildiğinden emin olun, ardından Tümünü Görüntüle düğmesine tıklayın Kategoriler için >.
Yerini ve tıklayın Geliştirici Modülleri düğmesi.
Fotoğraf Makinesi modülünü bulun ve tıklayın veya 3B görüntüye sürükleyin ve bırakın.
Gezgin penceresinde, tüm Fotoğraf Makinesi modelini Sunucu Kod Hizmetine taşıyın.Deneyimi çalıştırdıktan sonra, modül kendini çeşitli hizmetlere dağıtacak ve çalışmaya başlayacaktır.
Stantı konumlandır
Modül, 3B dünyada konumlandırabileceğiniz bir Fotoğraf Makinesi modeli ile birlikte gelir.Bu model, oyuncuların bir fotoğraf kurmak için etkileşime gireceği şeydir.
Modülün ana klasörünün Fotoğraf Makinesi ağı içindeki Çalışma Alanı klasörünün içindeki mesh'i bulun.
En üst seviye Çalışma Alanı hiyerarjisine taşı ve istediğin yere yerleştir.
Yapılandırma
Modül çoğu kullanım durumu için önceden yapılandırılmıştır, ancak configure işlevi aracılığıyla kolayca özelleştirilebilir.Örneğin, fotoğrafın altındaki varsayılan mesajı değiştirmek için:
In Başlangıç OyuncuScriptleri , yeni bir LocalScript oluştur ve onu Fotoğraf Makinesi Yapılandırma olarak yeniden adlandır.
Yeni senaryoya aşağıdaki kodu yapıştırın.
YerelScript - Fotoğraf Makinesini Yapılandırlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.configure({frameMessage = "First Photo Booth Capture!",})
Etkinliklere bağlanma
Fotoğraf stantı yerel bir müşteriye yeni bir ekran gösterdiğinde, buna karşılık bir olay ateşlenir.Bu olaylar bir LocalScript ile bağlanabilir, böylece kendi özel mantığınızla yanıt verebilirsiniz.
YerelScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)
UI görünürlüğü
Varsayılan olarak, fotoğraf stantı bir fotoğraf sergilendiğinde tüm ScreenGuis ve CoreGuis gizlenir.Bu otomatik gizleme davranışını geçersiz kılmak ve hangi GUI'lerin görünür kalması gerektiğine programatik olarak karar vermek istiyorsanız, hideOtherGuis ve showOtherGuis geri çağrılarını içere ve kendi özel mantığınızla yanıt verin.
YerelScript
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local StarterGui = game:GetService("StarterGui")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local hiddenInstances = {}
-- Gizlenmeyecek bir ekran GUI'si oluştur
local specialGuiInstance = Instance.new("ScreenGui")
-- Fotoğraf kabini GUI'sinin üzerinde ekran GUI'sini çiz
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Gizlenmesini engellemek için ekran GUI'sinde öznitelik ayarlayın
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- UI'ye metin etiketi ekleyin
local specialLabel = Instance.new("TextLabel")
specialLabel.Size = UDim2.fromScale(1, 0.1)
specialLabel.Text = "Remains visible when taking a photo"
specialLabel.Font = Enum.Font.GothamMedium
specialLabel.TextSize = 24
specialLabel.Parent = specialGuiInstance
PhotoBooth.hideOtherGuis(function()
-- Öznitelik ile işaretlenenler dışında tüm geliştirici tanımlı ekran arayüzlerini gizle
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
-- Belirli çekirdek GUI'leri gizle
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Gizlenmiş olan tüm geliştirici tanımlı ekran arayüzlerini göster
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Gizlenen belirli çekirdek GUI'leri göster
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)
API referansı
Fonksiyonlar
yapılandır
yapılandır(config: table )
Varsayılan yapılandırma seçeneklerini aşağıdaki anahtarlar/değerler aracılığıyla geçersiz kılar: config tablosunda.Bu işlev yalnızca bir LocalScript 'dan çağrılabilir.
Anahtar | Açıklama | Varsayılan |
---|---|---|
frameMessage | Fotoğrafın altında gösterilen mesaj. Süresi fadeUiDelay özelliği aracılığıyla kontrol edilebilir. | “Cihazını kullanarak bir ekran görüntüsü al ve paylaş!” |
fadeUiDelay | Kare mesajının kaybolmadan önce gösterilmesi gereken süre (saniyeler içinde). Asla kaybolmaması için negatif bir sayıya ayarlanır. | 3 |
closeButtonImage | Yakın fotoğraf düğmesi için kullanılacak görüntü, closeButtonBackgroundImage görüntünün üzerine yerleştirildi. | “rbxassetid://7027440823” |
closeButtonBackgroundImage | Yakın fotoğraf düğmesi için kullanılacak arka plan görüntüsü. | “rbxassetid://7027440891” |
cameraLandscapePosition | Fotoğraf stantının kamerasının, karakterden önce ve yukarıdan aldığı mesafe, manzara modunda bir fotoğraf çekerken ( Vector2 ). | (5, 2) |
cameraPortraitPosition | Fotoğraf stantının kamerasının, karakterden önce ve yukarıdan, portre modunda fotoğraf çekerken mesafesi (Vector2). | (10, 1) |
countdownFont | Geri sayım süresinde kullanılacak yazı tipi ( Enum.Font ). | GothamBlack |
countdownTextColor | Geri sayım süresindeki sayıların rengi ( Color3 ). | [255, 255, 255] |
printoutCharacterPosition | Baskı çıktı gösterildiğinde ekranda karakterin konumu ( UDim2 ). | (0.5, 0, 0.5, 0) |
printoutCharacterSize | Karakterin baskıda aldığı ekran alanı miktarı ( UDim2 ). | (1, 0, 1, 0) |
characterAnimation | Karakterin fotoğrafta aldığı animasyonun varlık kimliği, başlangıç çerçevesinde durakladı. | “rbxassetid://6899663224” |
filterImage | Fotoğraf üzerine bir filtre olarak uygulanacak görüntü. Eğer nil ise, görüntü kenarlarını kararan varsayılan bir filtre kullanılır. | nil |
YerelScript - Fotoğraf Makinesini Yapılandır
local ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.configure({frameMessage = "What a cool pose!",fadeUiDelay = 5,maxActivationDistance = 5,printoutCharacterSize = UDim2.fromScale(1.5, 1.5),})
arka planları ayarla
setBackgrounds(backgrounds: table )
Fotoğraf kabini tarafından sağlanan varsayılan arka planları geçersiz kılar.Arka plan görüntüleri optimum bir deneyim için 16:9 oranında olmalıdır (1024×768) ve varlık kimlikleri arka plan düzenine dahil edilmelidir.1-4 (dahil) arka plan sağlanabilir.
YerelScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.setBackgrounds({"rbxassetid://7018713114","rbxassetid://950538356",})
Etkinlikler
geri sayımBaşladı
Geri sayım başladığında ateş eder. Bu etkinin yalnızca bir LocalScript içinde bağlanması gerekir.
YerelScript' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)
printoutGösterildi
Yazdırma, kullanıcıya gösterildiğinde ateş eder. Bu olay yalnızca bir LocalScript içinde bağlanabilir.
YerelScript' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
soruGösterildi
Baskı kapatıldığında ve kamera düğmesi tekrar gösterildiğinde ateşlenir. Bu olay yalnızca bir LocalScript içinde bağlanabilir.
YerelScript' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)
Geri çağrılar
hideOtherGuis'yi gizle
hideOtherGuis(çağrışım: function )
Bu geri arama, yazdırma gösterilmeden hemen önce çalışır, böylece yazdırma gösterilmeden önce tüm ScreenGuis veya içindeki elemanları devre dışı bırakabilirsiniz.Fotoğraf kabini tarafından kullanılan GUI'lerin özelliği Fotoğraf Makinesinde Gösterin , doğru olarak ayarlandı.Ayrıntılar ve örnek kod için GUI Görünürlüğü bakın.
showOtherGuis'i göster
showOtherGuis(çağrışım: function )
Bu geri çağrı, baskı kapatıldıktan sonra çalışır, böylece tüm ScreenGuis veya içindeki elemanları yeniden etkinleştirebilirsiniz.Fotoğraf kabini tarafından kullanılan GUI'lerin özelliği Fotoğraf Makinesinde Gösterin , doğru olarak ayarlandı.Ayrıntılar ve örnek kod için GUI Görünürlüğü bakın.