Mengambil foto adalah cara sempurna untuk mengenang pengalaman besar.Modul pengembang PhotoBooth adalah alat panggung foto yang mudah digunakan yang memungkinkan pemain menyerang posisi unik dengan latar belakang yang mewakili pengalaman mereka.
Penggunaan modul
Instalasi
Untuk menggunakan modul PhotoBooth dalam pengalaman:
Pastikan pengurutan Model dipilih, lalu klik tombol Lihat Semua untuk Kategori .
Temukan dan klik ubin Modul Pengembang .
Temukan modul Booth Foto dan klik, atau seret dan lepaskan ke dalam tampilan 3D.
Di jendela Explorer, pindahkan seluruh model PhotoBooth ke ServerScriptService .Setelah menjalankan pengalaman, modul akan didistribusikan ke berbagai layanan dan mulai berjalan.
Posisikan stan
Modul ini dilengkapi dengan satu model PhotoBooth yang dapat Anda posisikan di dunia 3D.Model ini adalah apa yang akan diinteraksi pemain untuk mengatur foto.
Temukan mesh PhotoBooth di dalam folder Workspace dari folder utama modul.
Pindahkan ke hierarki tingkat atas Ruang kerja dan letakkan di tempat yang diinginkan.
Konfigurasi
Modul sudah diatur sebelumnya untuk bekerja untuk sebagian besar kasus penggunaan, tetapi dapat dengan mudah disesuaikan melalui fungsi konfigurasi.Sebagai contoh, untuk mengubah pesan default di bagian bawah foto:
Di StarterPlayerScripts , buat baru LocalScript dan ganti namanya menjadi Konfigurasi Foto Booth .
Tempelkan kode berikut ke skrip baru.
Skrip Lokal - Konfigurasi PhotoBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.configure({frameMessage = "First Photo Booth Capture!",})
Hubungkan ke acara
Setiap kali stan foto menampilkan layar baru kepada klien lokal, peristiwa yang sesuai ditembak.Peristiwa ini dapat terhubung dalam LocalScript sehingga Anda dapat menanggapi dengan logika khusus Anda sendiri.
Skrip Lokal
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)
Keterlihatan GUI
Secara default, stan foto menyembunyikan semua ScreenGuis dan CoreGuis ketika foto dipentaskan.Jika Anda ingin menggantikan perilaku penyembunyian otomatis ini dan memutuskan secara programatik mana GUI yang harus tetap terlihat, sertakan panggilan balik hideOtherGuis dan showOtherGuis dan tanggapi dengan logika khusus Anda sendiri.
Skrip Lokal
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 = {}
-- Buat GUI layar yang tidak akan disembunyikan
local specialGuiInstance = Instance.new("ScreenGui")
-- Menggambar GUI layar di atas GUI stan foto
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Tetapkan atribut di GUI layar untuk mencegah penyembunyian
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Tambahkan label teks ke GUI
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()
-- Sembunyikan semua GUI layar yang didefinisikan oleh pengembang kecuali yang ditandai dengan atribut
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
-- Sembunyikan GUI inti khusus
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Tampilkan semua GUI layar yang didefinisikan oleh pengembang yang disembunyikan
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Tampilkan GUI inti khusus yang disembunyikan
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)
Referensi API
Fungsi
mengonfigurasi
mengonfigurasi(config: table )
Menggantikan opsi konfigurasi default melalui kunci/nilai berikut di tabel config.Fungsi ini hanya dapat dipanggil dari LocalScript .
Kunci | Deskripsi | Standar |
---|---|---|
frameMessage | Pesan yang ditampilkan di bagian bawah foto. Durasinya dapat dikontrol melalui properti fadeUiDelay. | “Gunakan perangkat Anda untuk mengambil tangkapan layar dan bagikan!” |
fadeUiDelay | Waktu untuk menampilkan pesan frame sebelum memudar, dalam beberapa detik. Atur ke angka negatif untuk tidak pernah memudar. | 3 |
closeButtonImage | Gambar untuk digunakan untuk tombol foto dekat, ditempatkan di atas gambar closeButtonBackgroundImage. | “rbxassetid://7027440823” |
closeButtonBackgroundImage | Gambar latar belakang untuk digunakan untuk tombol foto dekat. | “rbxassetid://7027440891” |
cameraLandscapePosition | Jarak kamera stan foto, di depan dan ke atas dari karakter, saat mengambil foto dalam mode lanskap ( Vector2 ). | (5, 2) |
cameraPortraitPosition | Jarak kamera stan foto, di depan dan ke atas dari karakter, saat mengambil foto dalam mode potret ( Vector2 ). | (10, 1) |
countdownFont | Font untuk digunakan untuk angka dalam hitung mundur ( Enum.Font ). | GothamBlack |
countdownTextColor | Warna angka-angka dalam hitung mundur ( Color3 ). | [255, 255, 255] |
printoutCharacterPosition | Posisi karakter di layar saat cetakan ditampilkan ( UDim2 ). | (0.5, 0, 0.5, 0) |
printoutCharacterSize | Jumlah ruang layar yang diambil karakter di cetakan ( UDim2 ). | (1, 0, 1, 0) |
characterAnimation | ID aset animasi yang diambil karakter dalam foto, dijeda di frame awalnya. | “rbxassetid://6899663224” |
filterImage | Gambar untuk diterapkan di atas foto sebagai filter. Jika nil, filter default yang memburamkan tepi gambar akan digunakan. | nil |
Skrip Lokal - Konfigurasi PhotoBooth
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),})
atur latar belakang
setBackgrounds(backgrounds: table )
Menggantikan latar belakang default yang disediakan oleh stan foto.Gambar latar belakang harus memiliki rasio aspek 16:9 (1024×768) untuk pengalaman optimal dan ID aset mereka harus dimasukkan dalam array latar belakang.1–4 (termasuk) latar belakang dapat disediakan.
Skrip Lokal
local ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.setBackgrounds({"rbxassetid://7018713114","rbxassetid://950538356",})
Peristiwa
hitung mundur dimulai
Melepaskan api saat hitung mundur dimulai. Acara ini hanya dapat terhubung di dalam LocalScript .
Skrip Lokal' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)
printout ditampilkan
Melepaskan api saat cetakan ditampilkan kepada pengguna. Acara ini hanya dapat terhubung dalam LocalScript .
Skrip Lokal' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
prompt ditampilkan
Melepaskan api saat cetakan ditutup dan tombol kamera menunjukkan lagi. Peristiwa ini hanya dapat terhubung dalam LocalScript .
Skrip Lokal' 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)
Panggilan Balik
sembunyikanOtherGuis
sembunyikanOtherGuis( callback: function )
Panggilan balasan ini dijalankan segera sebelum cetakan ditampilkan, memungkinkan Anda menonaktifkan seluruh ScreenGuis atau elemen di dalamnya sebelum cetakan ditampilkan.GUI yang digunakan oleh stan foto memiliki atribut Tampilkan di Booth Foto diatur ke benar .Lihat Visibilitas GUI untuk rincian dan kode sampel.
tunjukkanOtherGuis
tampilkanOtherGuis( callback: function )
Panggilan balasan ini dijalankan setelah cetakan ditutup, memungkinkan Anda untuk mengaktifkan kembali seluruh ScreenGuis atau elemen di dalamnya.GUI yang digunakan oleh stan foto memiliki atribut Tampilkan di Booth Foto diatur ke benar .Lihat Visibilitas GUI untuk rincian dan kode sampel.