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:
Dalla Visualizza scheda, apri la Toolbox e seleziona la scheda Creator Store .
Assicurati che la classificazione Modelli sia selezionata, quindi fai clic sul pulsante Vedi tutto per Categorie.
Individua e fai clic sul riquadro Moduli di Piastrella.
Individua il modulo Cabina fotografica e fai clic su di esso, oppure trascinalo nella vista 3D.
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.
Individua il PhotoBooth mesh all'interno della cartella Workspace del modulo.
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:
In StarterPlayerScripts , crea un nuovo LocalScript e rinominalo in ConfigurePhotoBooth .
Incolla il seguente codice nello script nuovo.
Script locale - Configura la cabina fotograficalocal 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
Sovrascrivi le opzioni di configurazione predefinite attraverso le seguenti chiavi / valori nella tabella config. Questa funzione può essere chiamata solo da un LocalScript .
Chiave | Descrizione | Predefinito |
---|---|---|
frameMessage | Messaggio 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 |
closeButtonImage | Immagine da utilizzare per il pulsante di chiusura della foto, posizionato sopra l'immagine closeButtonBackgroundImage . | "rbxassetid://7027440823" |
closeButtonBackgroundImage | Immagine di sfondo da utilizzare per il pulsante di chiusura della foto. | "rbxassetid://7027440891" |
cameraLandscapePosition | Distanza della Telecameradella cabina fotografica, in avanti e verso l'alto dal personaggio, quando si scatta una foto in modalità paesaggio ( Vector2 ). | (5, 2) |
cameraPortraitPosition | Distanza della Telecameradella cabina fotografica, in avanti e verso l'alto dal personaggio, quando si scatta una foto in modalità ritratto ( Vector2 ). | (10, 1) |
countdownFont | Font da utilizzare per i numeri nel conto alla rovescia ( Enum.Font ). | GothamBlack |
countdownTextColor | Colore dei numeri nel conto alla rovescia ( Color3 ). | [255, 255, 255] |
printoutCharacterPosition | Posizione del personaggio sullo schermo quando la stampa è in mostra ( UDim2 ). | (0.5, 0, 0.5, 0) |
printoutCharacterSize | Quantità di spazio di schermo che il personaggio occupa nella stampa ( UDim2 ). | (1, 0, 1, 0) |
characterAnimation | ID risorsa dell'animazione che il personaggio prende nella foto, fermata alla sua prima immagine iniziale. | "rbxassetid://6899663224" |
filterImage | Immagine 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
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
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
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.