Fotoğraf çekmek, harika bir deneyimi taçlandırmanın mükemmel bir yoludur. FotoKabini geliştirici modülü, oyuncuların deneyimlerini temsil eden bir arka plan ile eşsiz bir poz vermesine olanak tanıyan, kullanımı kolay bir fotoğraf düzenleme aracıdır.
Modül kullanımı
Kurulum
FotoKabini modülünü bir deneyimde kullanmak için:
Studio'nun Pencere menüsünden veya Ana sekmesi araç çubuğundan Araç Kutusu'nu açın ve Yaratıcı Mağaza sekmesini seçin.

Modeller sıralamasının seçili olduğundan emin olun ve ardından Kategorileri Gör butonuna tıklayın.

Paketler kutusunu bulun ve tıklayın.
Foto Kabini modülünü bulun ve tıklayın ya da 3D görünümü içine sürükleyip bırakın.

Keşfedicinin penceresinde, tüm FotoKabini modelini ReplicatedStorage'a taşıyın. Deneyimi çalıştırdığınızda modül çalışmaya başlayacaktır.
Kabini konumlandırma
Modül, 3D dünyada konumlandırabileceğiniz bir FotoKabini modeli ile birlikte gelir. Bu model, oyuncuların bir fotoğraf ayarlamak için etkileşimde bulunacakları şeydir.
Modülün ana klasöründeki Workspace klasörü içinde FotoKabini mesh'ini bulun.

Bunu üst düzey Workspace hiyerarşisine taşıyın ve istediğiniz yere yerleştirin.

Yapılandırma
Modül, çoğu kullanım durumu için önceden yapılandırılmıştır, ancak configure fonksiyonu aracılığıyla kolayca özelleştirilebilir. Örneğin, fotoğrafın altındaki varsayılan mesajı değiştirmek için:
StarterPlayerScripts içinde yeni bir LocalScript oluşturun ve adını ConfigureFotoKabini olarak değiştirin.

Yeni script'e aşağıdaki kodu yapıştırın.
LocalScript - ConfigureFotoKabinilocal ReplicatedStorage = game:GetService("ReplicatedStorage")local FotoKabini = require(ReplicatedStorage.FotoKabini)FotoKabini.configure({frameMessage = "İlk Foto Kabini Çekimi!",})
Olaylara bağlanma
Fotoğraf kabini her yeni ekranı bir yerel istemciye gösterdiğinde, buna karşılık gelen bir olay ateşlenir. Bu olaylara LocalScript içinde bağlanarak kendi özel mantığınızla yanıt verebilirsiniz.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FotoKabini = require(ReplicatedStorage.FotoKabini)
FotoKabini.countdownStarted:Connect(function()
print("Geri sayım başladı")
end)
FotoKabini.printoutShown:Connect(function()
print("Çıktı gösteriliyor")
end)
FotoKabini.promptShown:Connect(function()
print("Kamera istemi gösteriliyor")
end)
GUI görünürlüğü
Varsayılan olarak, fotoğraf kabini bir fotoğraf ayarlandığında tüm ScreenGuis ve CoreGuis'yi gizler. Bu otomatik gizleme davranışını geçersiz kılmak ve hangi GUİ'lerin görünür kalacağına programatik olarak karar vermek istiyorsanız, hideOtherGuis ve showOtherGuis geri aramalarını ekleyin ve kendi özel mantığınızla yanıt verin.
LocalScript
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local StarterGui = game:GetService("StarterGui")
local FotoKabini = require(ReplicatedStorage.FotoKabini)
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local hiddenInstances = {}
-- Gizlenmeyecek bir ekran GUI oluştur
local specialGuiInstance = Instance.new("ScreenGui")
-- Ekran GUI'yi fotoğraf kabini GUI'sinin üstüne çizin
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Gizlemeyi önlemek için ekran GUI'sine bir nitelik ayarlayın
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- GUI'ye metin etiketi ekleyin
local specialLabel = Instance.new("TextLabel")
specialLabel.Size = UDim2.fromScale(1, 0.1)
specialLabel.Text = "Fotoğraf çekimi esnasında görünür kalır"
specialLabel.Font = Enum.Font.GothamMedium
specialLabel.TextSize = 24
specialLabel.Parent = specialGuiInstance
FotoKabini.hideOtherGuis(function()
-- Niteliği işaretlenmemiş olan tüm geliştirici tanımlı ekran GUILER'ini 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 temel GUILER'i gizle
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
FotoKabini.showOtherGuis(function()
-- Gizlenmiş olan tüm geliştirici tanımlı ekran GUILER'ini göster
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Gizlenmiş olan belirli temel GUILER'i göster
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)
API referansı
Fonksiyonlar
configure
configure(config: table)
config tablosundaki aşağıdaki anahtar/değerler ile varsayılan yapılandırma seçeneklerini geçersiz kılar. Bu fonksiyon yalnızca bir LocalScript içinden çağrılabilir.
| Anahtar | Açıklama | Varsayılan |
|---|---|---|
| frameMessage | Fotoğrafın altında gösterilen mesaj. Süresi fadeUiDelay özelliği ile kontrol edilebilir. | "Cihazını kullanarak bir ekran görüntüsü çek ve paylaş!" |
| fadeUiDelay | Çerçeve mesajının silinmeden önce gösterileceği süre, saniye cinsinden. Asla silinmemesi için negatif bir sayıya ayarlanabilir. | 3 |
| closeButtonImage | Kapalı fotoğraf düğmesi için kullanılacak resim, closeButtonBackgroundImage resminin üzerine yerleştirilir. | "rbxassetid://7027440823" |
| closeButtonBackgroundImage | Kapatma fotoğraf düğmesi için kullanılacak arka plan resmi. | "rbxassetid://7027440891" |
| cameraLandscapePosition | Fotoğraf kabininin kameranın, manzara modunda fotoğraf çekerken karakterin önünde ve yukarısına olan mesafesi (Vector2). | (5, 2) |
| cameraPortraitPosition | Fotoğraf kabininin kameranın, portre modunda fotoğraf çekerken karakterin önünde ve yukarısına olan mesafesi (Vector2). | (10, 1) |
| countdownFont | Geri sayımda kullanılacak sayıların yazı tipi (Enum.Font). | GothamBlack |
| countdownTextColor | Geri sayımdaki sayıların rengi (Color3). | [255, 255, 255] |
| printoutCharacterPosition | Çıktı gösterildiğinde ekranda karakterin pozisyonu (UDim2). | (0.5, 0, 0.5, 0) |
| printoutCharacterSize | Çıktı içinde karakterin kapladığı ekran alanı miktarı (UDim2). | (1, 0, 1, 0) |
| characterAnimation | Fotoğraftaki karakter için kullanılan animasyonun varlık kimliği, başlangıç çerçevesinde duraklatılmıştır. | "rbxassetid://6899663224" |
| filterImage | Fotoğrafın üzerine uygulanacak filtre resmi. Eğer nil ise, görüntünün kenarlarını karartan varsayılan bir filtre kullanılacaktır. | nil |
LocalScript - ConfigureFotoKabinilocal ReplicatedStorage = game:GetService("ReplicatedStorage")local FotoKabini = require(ReplicatedStorage.FotoKabini)FotoKabini.configure({frameMessage = "Ne kadar havalı bir poz!",fadeUiDelay = 5,maxActivationDistance = 5,printoutCharacterSize = UDim2.fromScale(1.5, 1.5),})
setBackgrounds
setBackgrounds(backgrounds: table)
Foto kabini tarafından sağlanan varsayılan arka planları geçersiz kılar. Arka plan resimlerinin en iyi deneyim için 16:9 görüntü oranında (1024×576) olması gerekmektedir ve varlık kimlikleri arka planlar dizisine eklenmelidir. 1–4 (dahil) arka plan verilebilir.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local FotoKabini = require(ReplicatedStorage.FotoKabini)FotoKabini.setBackgrounds({"rbxassetid://7018713114","rbxassetid://950538356",})
Olaylar
countdownStarted
Geri sayım başladığında ateşlenir. Bu olay sadece bir LocalScript içinde bağlanabilir.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FotoKabini = require(ReplicatedStorage.FotoKabini)
FotoKabini.countdownStarted:Connect(function()
print("Geri sayım başladı")
end)
printoutShown
Çıktı kullanıcının önüne serildiğinde ateşlenir. Bu olay sadece bir LocalScript içinde bağlanabilir.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FotoKabini = require(ReplicatedStorage.FotoKabini)
FotoKabini.printoutShown:Connect(function()
print("Çıktı gösteriliyor")
end)
promptShown
Çıktı kapatıldığında ve kamera düğmesi tekrar görünür olduğunda ateşlenir. Bu olay sadece bir LocalScript içinde bağlanabilir.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FotoKabini = require(ReplicatedStorage.FotoKabini)
FotoKabini.promptShown:Connect(function()
print("Kamera istemi gösteriliyor")
end)
Geri çağırmalar
hideOtherGuis
hideOtherGuis(callback: function)
Bu geri çağırma, çıktı gösterilmeden hemen önce çalıştırılır, böylece çıkmadan önce tüm ScreenGuis veya içindeki öğeleri devre dışı bırakmanızı sağlar. Foto kabini tarafından kullanılan GUİ'lerin ShowInPhotoBooth niteliği true olarak ayarlanmıştır. Detaylar ve örnek kod için GUI Görünürlüğü bölümüne bakın.
showOtherGuis
showOtherGuis(callback: function)
Bu geri çağırma, çıktı kapatıldıktan sonra çalıştırılır ve size tüm ScreenGuis veya içlerindeki öğeleri yeniden etkinleştirme imkanı sunar. Foto kabini tarafından kullanılan GUİ'lerin ShowInPhotoBooth niteliği true olarak ayarlanmıştır. Detaylar ve örnek kod için GUI Görünürlüğü bölümüne bakın.