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 PhotoBooth modulo sviluppatore è uno strumento facile da usare per foto stage che consente ai giocatori di fare una posa unica con un sfondo che rappresenta la loro esperienza.

Uso del modulo

Installazione

Per utilizzare il modulo PhotoBooth in un'esperienza:

  1. Dalla Visualizza scheda, apri la Toolbox e seleziona la scheda Creator Store .

    Toolbox toggle button in Studio
  2. Assicurati che la classificazione Modelli sia selezionata, quindi fai clic sul pulsante Vedi tutto per Categorie.

  3. Individua e fai clic sul riquadro Moduli di Piastrella.

  4. Individua il modulo Cabina fotografica e fai clic su di esso, oppure trascinalo nella vista 3D.

  5. Nella finestra Explorer, spostare l'intero PhotoBooth modello in ServerScriptService . Al momento dell'esecuzione dell'esperienza, il modulo si distribuirà su varie servizi e inizierà a funzionare.

Posizionamento della cabina

Il modulo viene fornito con un modello PhotoBooth che puoi posizionare nel Mondo3D. Questo modello è ciò con cui i giocatori interagiscono per configurare una foto.

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

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

Configurazione

Il modulo è prefigurato per funzionare per la maggior parte dei casi d'uso, ma può essere facilmente personalizzato attraverso la funzione configura. Ad esempio, per modificare il messaggio predefinito in basso alla foto:

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

  2. Incolla il seguente codice nello script nuovo.

    Script locale - Configura la cabina fotografica

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

Connessione agli eventi

Ogni volta che la cabina fotografica mostra uno schermo nuovo a un client locale, viene attivato un evento corrispondente. Questi eventi possono essere connessi in un LocalScript in modo che tu possa rispondere con la tua logica personalizzata.

Script locale

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)

Visibilità della GUI

Per impostazione predefinita, la cabina fotografica nasconde tutti ScreenGuis e CoreGuis quando viene visualizzata una foto. Se vuoi sovrascrivere questo comportamento di rilegamento automatico e programmare in quale delle GUI dovrebbe essere visibile, includi il hideOtherGuis e 1> showOtherGuis</

Script locale

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 = {}
-- Crea un'interfaccia utente di schermo che non sarà nascosto
local specialGuiInstance = Instance.new("ScreenGui")
-- Disegna la GUI della schermata sopra la GUI or Intefaccia grafica utentedella cabina fotografica
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Imposta l'attributo sullo schermo GUI per prevenire loHide
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Aggiungi un'etichetta di testo all'GUI or Intefaccia grafica utente
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()
-- Nascondi tutte le interfacce utente definite dal team di sviluppatori, ad eccezione di quelle contrassegnate con l'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 interfacce utente specifiche
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Mostra tutte le interfacce utente a schermo definito che sono state nascoste
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Mostra GUI del nucleo specifiche che sono state nascoste
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

Riferimento API

Funzioni

configurare

Configurare(config: Library.table)

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

ChiaveDescrizionePredefinito
frameMessageMessaggio che viene mostrato in basso alla foto. La sua durata può essere controllata tramite la ProprietàfadeUiDelay."Usa il tuo dispositivo per fare uno screenshot e Condividere!"
fadeUiDelayÈ il momento di mostrare il messaggio di frame prima che sbiadisca, in secondi. Impostato su un numero negativo per non sbiadire mai.3
closeButtonImageImmagine da utilizzare per il pulsante di chiusura della foto, posizionato sopra l'immagine closeButtonBackgroundImage ."rbxassetid://7027440823"
closeButtonBackgroundImageImmagine di sfondo da utilizzare per il pulsante di chiusura della foto."rbxassetid://7027440891"
cameraLandscapePositionDistanza della Telecameradella cabina fotografica, in avanti e verso l'alto dal personaggio, quando si scatta una foto in modalità paesaggio ( Vector2 ).(5, 2)
cameraPortraitPositionDistanza della Telecameradella cabina fotografica, in avanti e verso l'alto dal 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 è in mostra ( UDim2 ).(0.5, 0, 0.5, 0)
printoutCharacterSizeQuantità di spazio di schermo che il personaggio occupa nella stampa ( UDim2 ).(1, 0, 1, 0)
characterAnimationID risorsa dell'animazione che il personaggio prende nella foto, fermata alla sua prima immagine iniziale."rbxassetid://6899663224"
filterImageImmagine da applicare sulla foto come Filtro. Se nil , un filtro predefinito che oscura gli angoli dell'immagine sarà utilizzato.nil
Script locale - Configura la cabina fotografica

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),
})

Caricamento di background

setBackgrounds(背景: table )

Sovrascrivono le impostazioni di sfondo predefinite fornite dalla cabina fotografica. Le immagini di sfondo dovrebbero essere all'aspetto 16:9 (1024×768) per un'esperienza ottimale e le loro ID di risorsa dovrebbero essere incluse nell' vettoredi sfondi. 1–4 (inclusivo) sfondi possono essere forniti.

Script locale

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

Eventi

countdownIniziato

Si attiva quando il conto alla rovescia inizia. Questo evento può essere connesso solo in un LocalScript .

Script locale

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

printoutMostrato

Si attiva quando viene mostrato l'output al fruitore. Questo evento può essere connesso solo in un LocalScript .

Script locale

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

promptMostrato

Si attiva quando la stamperia è chiusa e il pulsante della fotocamera viene mostrato di nuovo. Questo evento può essere connesso solo in un LocalScript .

Script locale

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

Chiamate

nascondiAltriGuis

nascondiAltroGuis( Richiama: function )

Questo callback viene eseguito immediatamente prima che la pagina di stampa sia visualizzata, consentendoti di disabilitare intere ScreenGuis o elementi all'interno di loro prima che la pagina di stampa sia visualizzata. Gli codiceGUI utilizzati dalla cabina fotografica hanno l'attributo MostraInPhotoBooth impostato su vero . Vedi 1> GUI Visibility1> per i

mostraAltriGuis

mostraAltriGuis( Richiama: function )

Questo callback viene eseguito dopo che il printout è stato chiuso, consentendoti di riattivare l'intero ScreenGuis o gli elementi all'interno di esso. GUI utilizzate dalla cabina fotografica hanno l'attributo MostraInPhotoBooth impostato su vero . Vedi 1> Visibilità GUI1> per i dettagli e il codice di esempio.