Ruang Foto

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

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:

  1. Dari tab Pandangan, buka Kotak Alat dan pilih tab Toko Pencipta .

    Toolbox toggle button in Studio
  2. Pastikan pengurutan Model dipilih, lalu klik tombol Lihat Semua untuk Kategori .

  3. Temukan dan klik ubin Modul Pengembang .

  4. Temukan modul Booth Foto dan klik, atau seret dan lepaskan ke dalam tampilan 3D.

  5. 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.

  1. Temukan mesh PhotoBooth di dalam folder Workspace dari folder utama modul.

  2. 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:

  1. Di StarterPlayerScripts , buat baru LocalScript dan ganti namanya menjadi Konfigurasi Foto Booth .

  2. Tempelkan kode berikut ke skrip baru.

    Skrip Lokal - Konfigurasi PhotoBooth

    local 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 .

KunciDeskripsiStandar
frameMessagePesan yang ditampilkan di bagian bawah foto. Durasinya dapat dikontrol melalui properti fadeUiDelay.“Gunakan perangkat Anda untuk mengambil tangkapan layar dan bagikan!”
fadeUiDelayWaktu untuk menampilkan pesan frame sebelum memudar, dalam beberapa detik. Atur ke angka negatif untuk tidak pernah memudar.3
closeButtonImageGambar untuk digunakan untuk tombol foto dekat, ditempatkan di atas gambar closeButtonBackgroundImage.“rbxassetid://7027440823”
closeButtonBackgroundImageGambar latar belakang untuk digunakan untuk tombol foto dekat.“rbxassetid://7027440891”
cameraLandscapePositionJarak kamera stan foto, di depan dan ke atas dari karakter, saat mengambil foto dalam mode lanskap ( Vector2 ).(5, 2)
cameraPortraitPositionJarak kamera stan foto, di depan dan ke atas dari karakter, saat mengambil foto dalam mode potret ( Vector2 ).(10, 1)
countdownFontFont untuk digunakan untuk angka dalam hitung mundur ( Enum.Font ).GothamBlack
countdownTextColorWarna angka-angka dalam hitung mundur ( Color3 ).[255, 255, 255]
printoutCharacterPositionPosisi karakter di layar saat cetakan ditampilkan ( UDim2 ).(0.5, 0, 0.5, 0)
printoutCharacterSizeJumlah ruang layar yang diambil karakter di cetakan ( UDim2 ).(1, 0, 1, 0)
characterAnimationID aset animasi yang diambil karakter dalam foto, dijeda di frame awalnya.“rbxassetid://6899663224”
filterImageGambar 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.