Cabina Fotografica

*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 una grande esperienza. Il modulo Cabina Fotografica per sviluppatori è uno strumento di staging 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 Cabina Fotografica in un'esperienza:

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

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

  3. Individua e fai clic sulla scheda Pacchetti.

  4. Trova il modulo Cabina Fotografica e fai clic su di esso, oppure trascinalo e rilascialo nella vista 3D.

  5. Nella finestra Esplora, sposta l'intero modello Cabina Fotografica in ReplicatedStorage. Al momento dell'esecuzione dell'esperienza, il modulo inizierà a funzionare.

Posizionare la cabina

Il modulo include un modello di Cabina Fotografica che puoi posizionare nel mondo 3D. Questo modello è quello con cui i giocatori interagiranno per impostare una foto.

  1. Individua il mesh Cabina Fotografica 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 modificare il messaggio predefinito nella parte inferiore della foto:

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

  2. Incolla il seguente codice nel nuovo script.

    LocalScript - ConfiguraCabinaFotografica

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CabinaFotografica = require(ReplicatedStorage.CabinaFotografica)
    CabinaFotografica.configure({
    frameMessage = "Prima cattura della cabina fotografica!",
    })

Collegare agli eventi

Ogni volta che la cabina fotografica visualizza 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 CabinaFotografica = require(ReplicatedStorage.CabinaFotografica)
CabinaFotografica.countdownStarted:Connect(function()
print("Il conteggio è iniziato")
end)
CabinaFotografica.printoutShown:Connect(function()
print("La stampa è visibile")
end)
CabinaFotografica.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 staging. Se desideri sovrascrivere questo comportamento di nascondimento automatico e decidere programmaticamente quali GUI dovrebbero 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 CabinaFotografica = require(ReplicatedStorage.CabinaFotografica)
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local hiddenInstances = {}
-- Crea una screen GUI che non verrà nascosta
local specialGuiInstance = Instance.new("ScreenGui")
-- Disegna la screen GUI sopra la GUI della cabina fotografica
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Imposta un'attributo sulla screen GUI 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 quando si scatta una foto"
specialLabel.Font = Enum.Font.GothamMedium
specialLabel.TextSize = 24
specialLabel.Parent = specialGuiInstance
CabinaFotografica.hideOtherGuis(function()
-- Nascondi tutte le screen GUI definite dallo sviluppatore eccetto 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)
CabinaFotografica.showOtherGuis(function()
-- Mostra tutte le screen GUI definite dallo sviluppatore che erano nascoste
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Mostra le 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 attraverso le seguenti chiavi/valori nella tabella config. Questa funzione può essere chiamata solo da un LocalScript.

ChiaveDescrizionePredefinito
frameMessageMessaggio mostrato alla parte inferiore della foto. La sua durata può essere controllata tramite la proprietà fadeUiDelay."Usa il tuo dispositivo per scattare uno screenshot e condividere!"
fadeUiDelayTempo in secondi per mostrare il messaggio del frame prima che svanisca. Imposta un numero negativo per non far mai svanire.3
closeButtonImageImmagine da utilizzare per il pulsante di chiusura della foto, posizionata sopra l'immagine closeButtonBackgroundImage."rbxassetid://7027440823"
closeButtonBackgroundImageImmagine di sfondo da utilizzare per il pulsante di chiusura della foto."rbxassetid://7027440891"
cameraLandscapePositionDistanza della fotocamera della cabina fotografica, di fronte e sollevata dal personaggio, quando si scatta una foto in modalità orizzontale (Vector2).(5, 2)
cameraPortraitPositionDistanza della fotocamera della cabina fotografica, di fronte e sollevata dal personaggio, quando si scatta una foto in modalità verticale (Vector2).(10, 1)
countdownFontCarattere da utilizzare per i numeri nel countdown (Enum.Font).GothamBlack
countdownTextColorColore dei numeri nel countdown (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 occupata dal personaggio 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 - ConfiguraCabinaFotografica

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local CabinaFotografica = require(ReplicatedStorage.CabinaFotografica)
CabinaFotografica.configure({
frameMessage = "Che posa cool!",
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 devono essere inclusi nell'array degli sfondi. Possono essere forniti da 1 a 4 sfondi (inclusi).

LocalScript

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

Eventi

countdownStarted

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

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local CabinaFotografica = require(ReplicatedStorage.CabinaFotografica)
CabinaFotografica.countdownStarted:Connect(function()
print("Il conteggio è 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 CabinaFotografica = require(ReplicatedStorage.CabinaFotografica)
CabinaFotografica.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 CabinaFotografica = require(ReplicatedStorage.CabinaFotografica)
CabinaFotografica.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, permettendoti di disabilitare intere ScreenGuis o elementi all’interno di esse 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, permettendoti di riabilitare intere ScreenGuis o elementi all’interno di esse. 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.