Fotoğraf Kabini

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Bir fotoğraf çekmek, harika bir deneyimin hatırlanması için mükemmel bir yoldur. Fotoğraf kabinigeliştirici modülü isteğe başvuran oyuncuların deneyimlerini temsil eden bir arka planla eşsiz bir poz vermesine izin veren kolay kullanımı kolay bir fotoğraf aşama aracıdır.

Modül Kullanımı

Kurulum

Bir deneyimde Fotoğraf Kabini modülünü kullanmak:

  1. Görüntü sayfasından aç Araç Kutusu ve seç Yaratıcı Dükkanı sayfasını.

    Toolbox toggle button in Studio
  2. Modelleri Sırala seçimi seçildiğinden emin olun, sonra Tümünü Gör düğmesine tıklayın, Kategoriler için.

  3. Yerleştir ve Dev Modülleri mozülünü tıkla.

  4. Fotoğraf Kabini modülünü bul ve tıkla, yoksa 3D görüntüsüne kaydır ve bırak.

  5. In the Explorer window, move the entire PhotoBooth model into ServerScriptService . On running the experience, the module will distribute itself to various services and begin running.

Standın Yerleştirilmesi

Modül, 3D dünyasında yerleştirilecek bir FotoğrafKabini modeli ile gelir. Bu model, oyuncuların bir fotoğraf kurmak için etkileşime geçeceği şeydir.

  1. Modülün ana dizininin Fotoğraf Kafesi meshesini bulun.

  2. En üst düzeydeki Çalışma Alanı hiyerarşisine hareket ettir ve istediğin yere yerleştir.

Yapılandırma

Modül, çoğu kullanım durumu için çalışmaya hazır, ancak 配置 işlevi aracılığıyla kolayca özelleştirilebilir. Örneğin, fotoğrafın altındaki varsayılan mesajı değiştirmek için:

  1. In StarterPlayerScripts , yeni bir LocalScript oluştur ve onu Fotoğraf Kabini Yapılandır olarak adlandır.

  2. Aşağıdaki kodu yeni script'e yapıştırın.

    Yerel Kod - Fotoğraf Kabini Yapılandır

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
    PhotoBooth.configure({
    frameMessage = "First Photo Booth Capture!",
    })

Etkinliklere Bağlanıyor

Her fotoğraf kabini bir yerel müşteriye yeni bir ekran gösterdiğinde, buna karşılık bir etkinlik başlatılır. Bu etkinlikler bir LocalScript aracılığıyla bağlanabilir, böylece kendi özel mantığınızla yanıtlayabilirsiniz.

Yerel Kod

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)

GUI Görünürlüğü

Varsayılan olarak, fotoğraf kabini tüm ScreenGuis ve CoreGuis gizler bir fotoğraf sahnesindeğinde tüm şeyleri gizler. Eğer bu otomatik gizleme davranışını ve programlama olarak hangi GUI'lerin görünmes

Yerel Kod

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 oluşturun
local specialGuiInstance = Instance.new("ScreenGui")
-- Fotoğraf kabini GUI'nin üzerindeki ekran GUI'sini çizin
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Gizlenmeyi önlemek için ekran GUI'sinde özellik ayarlarını değiştir
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Metni etiketleri GUI'ye 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()
-- Özellikle belirtilenler dışında tüm geliştirici tarafından tanımlanan ekran GUIs'lerini 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'lerini gizle
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Gizlenen tüm geliştirici tarafından gizlenmiş ekran GUIs'lerini göster
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Gizlenen özel çekirdek GUI'lerini göster
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

API İşaretçisi

Fonksiyonlar

yapılandır

yapılandır(Config: table )

class.local script tabelasındaki önbelleği geçersiz hale getiren anahtarlar/değerler aracılığıyla varsayılan yapılandırma seçeneklerini üst üste geçersiz kılar. Bu işlev sadece LocalScript ile bağlantı kurulabilir.

AnahtarAçıklamaVarsayılan
frameMessageFotoğrafın altında gösterilen mesaj. Onun süresi fadeUiDelay özelliği aracılığıyla kontrol edilebilir.“Ekran görüntüsü almak ve paylaşmak için cihazınızı kullanın!”
fadeUiDelayÇerçeveli mesajı göstermek zamanlayıcı olmadan solgunca, saniye içinde. Olumsuz bir sayıyı ayarla asla solgunmayın.3
closeButtonImageYakın fotoğraf düğmesi için kullanılacak resim, closeButtonBackgroundImage görüntüsünün üzerine yerleştirilmiştir.“rbxassetid://7027440823”
closeButtonBackgroundImageYakın fotoğraf düğmesi için kullanılan arka plan görüntüsü.“rbxassetid://7027440891”
cameraLandscapePositionLandscape modunda bir fotoğraf çekerken karakterin önünde ve yukarında fotoğraf makinesinin kamerasının mesafesi (Vector2).(5, 2)
cameraPortraitPositionPortre modunda bir fotoğraf çekerken karakterin önünde ve yukarıda fotoğraf makinesinin kamerasının mesafesi, Vector2 .(10, 1)
countdownFontSayım sayısında kullanılan karakter ( Enum.Font ).GothamBlack
countdownTextColorSayı sayım süresindeki renkler ( Color3 ).[255, 255, 255]
printoutCharacterPositionYazı çıktığında ekranda karakterin konumu ( UDim2 ).(0.5, 0, 0.5, 0)
printoutCharacterSizeKarakterin kağıt çıktısında aldığı ekran alanının miktarı (UDim2).(1, 0, 1, 0)
characterAnimationKarakterin fotoğrafta duraklatılmış başlangıç karesinde aldığı animasyonun kaynağıdır.“rbxassetid://6899663224”
filterImageFotoğraf üzerinde bir filtre olarak uygulanacak resim. Eğer nil , görüntü kenarlarını karartan bir varsayılan filtre kullanılacaktır.nil
Yerel Kod - Fotoğraf Kabini 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),
})

setBackgrounds

setBackgrounds(背景: table )

Fotoğraf kabini tarafından sağlanan varsayılan arka planları üstürür. Arka plan görüntüleri 16:9 yönlendirme oranında (1024×768) mükemmel bir deneyim için olmalıdır ve varsayılan arkal planlar arka planlar arasında dahil edilmelidir. 1–4 (dahil) arka planlar sağlanabilir.

Yerel Kod

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

Etkinlikler

countdownBaşladı

Sayıya geri sayım başladığında ateşlenir. Bu olay sadece bir LocalScript içinde bağlanabilir.

Yerel Kod

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şlenir. Bu olay sadece bir LocalScript ile bağlanabilir.

Yerel Kod

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)

gösterilen

Yazdırma kapatıldığında ve kamerası tekrar gösterildiğinde ateşlenir. Bu olay sadece bir LocalScript ile bağlanabilir.

Yerel Kod

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)

Çağrılar

Diğer Güis'i gizle

HideOtherGuis(çağrı: function )

Bu çağrı, çıktının görüntülenmeden hemen önce yürütülür, böylece çıktının görüntülenmeden önce tüm ScreenGuis veya onun içindeki elemanları devre dışı bırakabilirsiniz. Fotoğraf kabini tarafından kullanılan GUI'lerin çoğlu <

OtherGuis'i göster

showOtherGuis( callback: function )

Bu çağrı, çıktı kapatıldıktan sonra yürütülür, böylece tüm ScreenGuis veya onların içindeki elemanları yeniden etkinleştirebilirsiniz. Fotoğraf kabini tarafından kullanılan GUI'lerin ShowInPhotoBooth özelliğine sahip olduğunu görünür true .