Photo Booth

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Scattare una foto è un modo perfetto per commemorare un grande gioco. Il PhotoBooth modulo per sviluppatori è uno strumento di allestimento fotografico facile da usare che consente ai giocatori di posare in modo unico con uno sfondo che rappresenta la loro esperienza.

Utilizzo del modulo

Installazione

Per utilizzare il modulo PhotoBooth in un gioco:

  1. Dal menu Finestra di Studio o dalla barra degli strumenti della scheda Home, apri il Toolbox e seleziona la scheda Creator Store.

  2. Assicurati che sia selezionato l'ordinamento Modelli, quindi fai clic sul pulsante Vedi Tutti per Categorie.

  3. Individua e fai clic sulla tessera Pacchetti.

  4. Individua il modulo Photo Booth e fai clic su di esso, oppure trascinalo e rilascialo nella vista 3D.

  5. Nella finestra Esplora, sposta l'intero modello PhotoBooth in ReplicatedStorage. Una volta avviato il gioco, il modulo inizierà a funzionare.

Posizionare la cabina

Il modulo viene fornito con un modello PhotoBooth che puoi posizionare nel mondo 3D. Questo modello è quello con cui i giocatori interagiranno per impostare una foto.

  1. Individua il mesh PhotoBooth all'interno della cartella Workspace della cartella principale del modulo.

  2. Spostalo nella gerarchia Workspace di livello superiore e posizionalo dove desiderato.

Configurazione

Il modulo è preconfigurato per funzionare nella maggior parte dei casi d'uso, ma può essere facilmente personalizzato tramite la funzione configure. Ad esempio, per cambiare il messaggio predefinito in fondo alla foto:

  1. In StarterPlayerScripts, crea un nuovo LocalScript e rinominalo in ConfigurePhotoBooth.

  2. Incolla il seguente codice nel nuovo script.

    LocalScript - ConfigurePhotoBooth
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
    PhotoBooth.configure({
    frameMessage = "Primo scatto della cabina fotografica!",
    })

Collegarsi agli eventi

Ogni volta che la cabina fotografica mostra un nuovo schermo a un client locale, viene attivato un evento corrispondente. Questi eventi possono essere collegati in un LocalScript in modo da poter rispondere con la propria logica personalizzata.

LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.countdownStarted:Connect(function()
print("Il conto alla rovescia è iniziato")
end)
PhotoBooth.printoutShown:Connect(function()
print("La stampa è visibile")
end)
PhotoBooth.promptShown:Connect(function()
print("Il prompt della fotocamera è visibile")
end)

Visibilità della GUI

Per impostazione predefinita, la cabina fotografica nasconde tutte le ScreenGuis e CoreGuis quando una foto è in fase di allestimento. Se desideri sovrascrivere questo comportamento di auto-nascita e decidere programmaticamente quali GUI devono rimanere visibili, includi i callback hideOtherGuis e showOtherGuis e rispondi con la tua logica personalizzata.

LocalScript
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local StarterGui = game:GetService("StarterGui")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local hiddenInstances = {}
-- Crea una GUI di schermo che non verrà nascosta
local specialGuiInstance = Instance.new("ScreenGui")
-- Disegna la GUI di schermo sopra la GUI della cabina fotografica
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Imposta un attributo sulla GUI di schermo per prevenire la nascita
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Aggiungi un'etichetta di testo alla GUI
local specialLabel = Instance.new("TextLabel")
specialLabel.Size = UDim2.fromScale(1, 0.1)
specialLabel.Text = "Rimane visibile durante la foto"
specialLabel.Font = Enum.Font.GothamMedium
specialLabel.TextSize = 24
specialLabel.Parent = specialGuiInstance
PhotoBooth.hideOtherGuis(function()
-- Nascondi tutte le GUI di schermo definite dallo sviluppatore tranne quelle contrassegnate con attributo
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
-- Nascondi GUI core specifiche
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Mostra tutte le GUI di schermo definite dallo sviluppatore che erano nascoste
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Mostra GUI core specifiche che erano nascoste
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

Riferimento API

Funzioni

configure

configure(config: table)

Sovrascrive le opzioni di configurazione predefinite tramite le seguenti chiavi/valori nella tabella config. Questa funzione può essere chiamata solo da un LocalScript.

ChiaveDescrizionePredefinito
frameMessageMessaggio mostrato in fondo alla foto. La sua durata può essere controllata tramite la proprietà fadeUiDelay."Usa il tuo dispositivo per scattare uno screenshot e condividerlo!"
fadeUiDelayTempo per mostrare il messaggio del frame prima che svanisca, in secondi. Imposta a un numero negativo per non far mai svanire.3
closeButtonImageImmagine da utilizzare per il pulsante di chiusura della foto, posizionata sopra l'immagine di sfondo del pulsante di chiusura."rbxassetid://7027440823"
closeButtonBackgroundImageImmagine di sfondo da utilizzare per il pulsante di chiusura della foto."rbxassetid://7027440891"
cameraLandscapePositionDistanza della fotocamera della cabina fotografica, davanti e sopra il personaggio, quando si scatta una foto in modalità paesaggio (Vector2).(5, 2)
cameraPortraitPositionDistanza della fotocamera della cabina fotografica, davanti e sopra il personaggio, quando si scatta una foto in modalità ritratto (Vector2).(10, 1)
countdownFontFont da utilizzare per i numeri nel conto alla rovescia (Enum.Font).GothamBlack
countdownTextColorColore dei numeri nel conto alla rovescia (Color3).[255, 255, 255]
printoutCharacterPositionPosizione del personaggio sullo schermo quando la stampa è visibile (UDim2).(0.5, 0, 0.5, 0)
printoutCharacterSizeQuantità di spazio sullo schermo che il personaggio occupa nella stampa (UDim2).(1, 0, 1, 0)
characterAnimationID dell'asset dell'animazione che il personaggio esegue nella foto, in pausa al suo fotogramma iniziale."rbxassetid://6899663224"
filterImageImmagine da applicare sulla foto come filtro. Se nil, verrà utilizzato un filtro predefinito che scurisce i bordi dell'immagine.nil
LocalScript - ConfigurePhotoBooth
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.configure({
frameMessage = "Che posa fantastica!",
fadeUiDelay = 5,
maxActivationDistance = 5,
printoutCharacterSize = UDim2.fromScale(1.5, 1.5),
})

setBackgrounds

setBackgrounds(backgrounds: table)

Sovrascrive gli sfondi predefiniti forniti dalla cabina fotografica. Le immagini di sfondo dovrebbero avere un rapporto di aspetto di 16:9 (1024×576) per un'esperienza ottimale e i loro ID asset dovrebbero essere inclusi nell'array degli sfondi. Possono essere forniti da 1 a 4 sfondi (inclusi).

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

Eventi

countdownStarted

Viene attivato quando inizia il conto alla rovescia. Questo evento può essere collegato solo in un LocalScript.

LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.countdownStarted:Connect(function()
print("Il conto alla rovescia è iniziato")
end)

printoutShown

Viene attivato quando la stampa è mostrata all'utente. Questo evento può essere collegato solo in un LocalScript.

LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.printoutShown:Connect(function()
print("La stampa è visibile")
end)

promptShown

Viene attivato quando la stampa è chiusa e il pulsante della fotocamera è di nuovo visibile. Questo evento può essere collegato solo in un LocalScript.

LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.promptShown:Connect(function()
print("Il prompt della fotocamera è visibile")
end)

Callback

hideOtherGuis

hideOtherGuis(callback: function)

Questo callback viene eseguito immediatamente prima che la stampa venga visualizzata, consentendoti di disabilitare intere ScreenGuis o elementi al loro interno prima che la stampa venga mostrata. Le GUI utilizzate dalla cabina fotografica hanno l'attributo ShowInPhotoBooth impostato su true. Vedi Visibilità della GUI per dettagli e codice di esempio.

showOtherGuis

showOtherGuis(callback: function)

Questo callback viene eseguito dopo che la stampa è stata chiusa, consentendoti di riabilitare intere ScreenGuis o elementi al loro interno. Le GUI utilizzate dalla cabina fotografica hanno l'attributo ShowInPhotoBooth impostato su true. Vedi Visibilità della GUI per dettagli e codice di esempio.

© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.