Kabin 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 yang sempurna untuk menghormati pengalaman hebat. The PhotoBooth modul pengembang adalah alat foto yang mudah digunakan yang memungkinkan para pemain menyerang posisi yang unik dengan latar belakang yang mewakili pengalaman mereka.

Penggunaan Modul

Pemasangan

Untuk menggunakan modul PhotoBooth dalam pengalaman:

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

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

  3. Temukan dan klik Modul Dev ubin.

  4. Temukan modul Photo Booth dan klik, atau seret-seret ke dalam pandangan 3D.

  5. Di jendela Explorer, pindahkan seluruh model PhotoBooth ke ServerScriptService . Setelah mengeksekusi pengalaman, modul akan di distribusikan ke berbagai layanan dan mulai berjalan.

Menempatkan Booth

Modul ini hadir dengan satu PhotoBooth model yang dapat Anda posisikan di dunia 3D. Ini adalah apa yang pemain akan berinteraksi untuk menyiapkan foto.

  1. Temukan PhotoBooth meshes di dalam Folder utama Folder utama modul. Lokasi PhotoBooth meshes di dalam Folder utama Folder utama modul.

  2. Pindahkan ke tingkat tertinggi Workspace hierarki dan posisikan di mana diinginkan.

Konfigurasi

Modul ini telah dikonfigurasi untuk bekerja untuk kebanyakan kasus pengguna, tetapi dapat dengan mudah disesuaikan melalui fungsi konfigurasikan. Misalnya, untuk mengubah pesan default di bagian bawah foto:

  1. Dalam StarterPlayerScripts , buat LocalScript baru dan ganti nama menjadi ConfigurePhotoBooth .

  2. Tempaste kode berikut ke dalam naskah baru.

    Skrip Lokal - Konfigurasi PhotoBooth

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

Mengikuti Acara

Setiap kali stan foto menunjukkan layar baru kepada klien lokal, acara yang sesuai diaktifkan. Acara ini dapat dihubungkan dalam LocalScript sehingga Anda dapat menanggapi dengan logika khusus Anda.

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)

Kesadaran GUI

Secara default, stan foto menyembunyikan semua ScreenGuis dan CoreGuis ketika foto dipanggil. Jika Anda ingin mengubah perilaku penyembunyian otomatis ini dan secara programmatis memutuskan mana GUI yang harus tetap terlihat, termasuk hideOther

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 tersembunyi
local specialGuiInstance = Instance.new("ScreenGui")
-- Gambil GUI layar di atas GUI stan foto
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Tetapkan atribut di GUI layar untuk mencegah menyembunyikan
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属性
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()
-- Tunjukkan semua GUI layar yang didefinisikan oleh pengembang yang tersembunyi
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Tampilkan GUI inti khusus yang tersembunyi
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

Referensi API

Fungsi

mengonfigurasi

mengonfigurasi(config: table )

Menggeser opsi konfigurasi default melalui kunci/值 berikut ini dalam tabel config . Fungsi ini hanya dapat dipanggil dari LocalScript .

KunciDeskripsiStandar
frameMessagePesan yang ditunjukkan di bagian bawah foto. Durasinya dapat diperiksa melalui properti fadeUiDelay.“Gunakan perangkat Anda untuk mengambil tangkapan layar dan bagikan!”
fadeUiDelaySaatnya untuk menunjukkan pesan frame sebelum menudar, dalam detik. Tetapkan untuk 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 nomor dalam countdown ( Color3 ).[255, 255, 255]
printoutCharacterPositionPosisi karakter di layar saat printout menunjukkan ( UDim2 ).(0.5, 0, 0.5, 0)
printoutCharacterSizeJumlah ruang layar yang ditempati karakter dalam printout ( UDim2 ).(1, 0, 1, 0)
characterAnimationID aset dari animasi yang dibawa karakter ke dalam foto, ditunda di frame awalnya.“rbxassetid://6899663224”
filterImageGambar untuk diterapkan di atas foto sebagai filter. Jika nil , filter default yang memutihkan sudut 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),
})

setLatar Belakang

setBackgrounds(背景: table )

Menggeser latar belakang default yang disediakan oleh stan foto. Gambar latar belakang harus berada di aspek rasio 16: 9 (1024 × 768) untuk pengalaman yang optimal dan ID aset mereka harus dicakup dalam matriksi 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",
})

Acara

countdownDimulai

Diaktifkan saat hitung mundur dimulai. Acara ini hanya dapat dihubungkan dalam sebuah LocalScript .

Skrip Lokal

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)

printoutTerlihat

Diaktifkan saat cetakan ditunjukkan kepada pengguna. Acara ini hanya dapat dihubungkan dalam LocalScript .

Skrip Lokal

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

promptTampilan

Diaktifkan saat cetakan ditutup dan tombol kamera muncul lagi. Acara ini hanya dapat dihubungkan dalam LocalScript .

Skrip Lokal

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

Panggilan

sembunyikanGuis lainnya

sembunyikan OtherGuis (CALLBACK: function )

Panggilan ini berjalan segera sebelum cetakan ditampilkan, memungkinkan Anda menonaktifkan seluruh ScreenGuis atau elemen di dalamnya sebelum cetakan ditampilkan. GUI yang digunakan oleh stan foto memiliki属性 Tampilkan di PhotoBooth set ke true . Lihat 1> Keselamatan G

tampilkan OtherGuis

tampilkan OtherGuis (CALLBACK: function )

Panggilan ini dijalankan setelah pencetakan ditutup, memungkinkan Anda mengaktifkan kembali seluruh ScreenGuis atau elemen di dalamnya. GUI yang digunakan oleh stan foto memiliki atribut Tampilkan di PhotoBooth set ke true . Lihat 1> Keselamatan GUI1> untuk detail dan kode samp