Fare una foto è un modo perfetto per commemorare una grande esperienza.Il modulo sviluppatore di PhotoBooth è uno strumento di posizionamento fotografico facile da usare che consente ai giocatori di colpire una posa unica con uno sfondo che rappresenta la loro esperienza.
Uso del modulo
Installazione
Per utilizzare il modulo PhotoBooth in un'esperienza:
Assicurati che la classificazione Modelli sia selezionata, quindi fai clic sul pulsante Vedi tutti per Categorie .
Individua e fai clic sul riquadro Moduli di sviluppo .
Individua il modulo Cabina fotografica e cliccalo, oppure trascinalo nella vista 3D.
Nella finestra Explorer, sposta l'intero modello PhotoBooth nel ServerScriptService .Dopo l'esecuzione dell'esperienza, il modulo si distribuirà a vari servizi e inizierà a funzionare.
Posiziona la cabina
Il modulo viene fornito con un modello PhotoBooth che puoi posizionare nel Mondo3D.Questo modello è quello con cui i giocatori interagiranno per impostare una foto.
Individua la mesh PhotoBooth all'interno della cartella Workspace del modulo principale.
Spostalo nella gerarchia di livello superiore Workspace e posizionalo dove desiderato.
Configurazione
Il modulo è preconfigurato 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 fondo alla foto:
In StarterPlayerScripts , crea una nuova LocalScript e rinominala in Configura la cabina fotografica .
Incolla il seguente codice nel nuovo script.
Script locale - ConfiguraPhotoBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.configure({frameMessage = "First Photo Booth Capture!",})
Connetti agli eventi
Ogni volta che la cabina fotografica mostra una nuova schermata a un client locale, viene attivato un evento corrispondente.Questi eventi possono essere collegati in un LocalScript in modo da poter 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à GUI
Per impostazione predefinita, la cabina fotografica nasconde tutti ScreenGuis e CoreGuis quando una foto viene messa in scena.Se vuoi annullare questo comportamento di nascondimento automatico e decidere programmaticamente quali GUI dovrebbero rimanere visibili, includi i hideOtherGuis e showOtherGuis callback e rispondi con la tua logica personalizzata.
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 una GUI dello schermo che non verrà nascosta
local specialGuiInstance = Instance.new("ScreenGui")
-- Disegna l'interfaccia utente dello schermo sopra l'GUI or Intefaccia grafica utenteutente della cabina fotografica
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Imposta l'attributo sull'interfaccia grafica per prevenire l'occultamento
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Aggiungi l'etichetta del testo alla 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 dallo sviluppatore tranne 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 del core
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Mostra tutte le interfacce utente a schermo definite dallo sviluppatore che sono state nascoste
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Mostra interfacce utente specifiche del nucleo nascoste
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)
Riferimento API
Functioni
configurare
configurare(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 .
Chiave | Descrizione | Basilare |
---|---|---|
frameMessage | Messaggio che viene visualizzato 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 | Tempo per mostrare il messaggio del quadro prima che sbiadiisca, in secondi. Impostalo 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, di fronte e verso l'alto dal personaggio, quando si scatta una foto in modalità paesaggio ( Vector2 ). | (5, 2) |
cameraPortraitPosition | Distanza della Telecameradella cabina fotografica, di fronte e verso l'alto dal personaggio, quando si scatta una foto in modalità ritratto ( Vector2 ). | (10, 1) |
countdownFont | Font da utilizzare per i numeri nella countdown ( Enum.Font ). | GothamBlack |
countdownTextColor | Colore dei numeri nella countdown ( Color3 ). | [255, 255, 255] |
printoutCharacterPosition | Posizione del personaggio sullo schermo quando la stampa viene mostrata ( UDim2 ). | (0.5, 0, 0.5, 0) |
printoutCharacterSize | Quantità di spazio sullo schermo che il personaggio occupa nella stampa ( UDim2 ). | (1, 0, 1, 0) |
characterAnimation | ID risorsa dell'animazione che il personaggio prende nella foto, pausata al suo frame di partenza. | ""rbxassetid://6899663224" |
filterImage | Immagine da applicare sulla foto come Filtro. Se nil , verrà utilizzato un filtro predefinito che oscura i bordi dell'immagine. | nil |
Script locale - ConfiguraPhotoBooth
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),})
Imposta sfoni
setBackgrounds(backgrounds: table )
Sovrascrive i background predefiniti forniti dalla cabina fotografica.Le immagini di sfondo dovrebbero essere alla proporzione 16:9 (1024×768) per un'esperienza ottimale e i loro ID di risorsa dovrebbero essere inclusi nell'vettoredi sfondo.1–4 (inclusi) background 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 accende quando inizia il conto alla rovescia. Questo evento può essere collegato solo in un LocalScript .
Script locale' hightlight='5-7
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 la stampa viene mostrata all'utente. Questo evento può essere connesso solo in un LocalScript .
Script locale' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
promptMostrato
Si accende quando la stampa viene chiusa e il pulsante della fotocamera viene nuovamente mostrato. Questo evento può essere connesso solo in un LocalScript .
Script locale' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)
Ritorni
nascondiOtherGuis
hideOtherGuis(Richiama: function )
Questa richiamata viene eseguita immediatamente prima che venga visualizzata la stampa, consentendoti di disabilitare l'intero ScreenGuis o gli elementi all'interno di esso prima che venga visualizzata la stampa.Le interfacce grafiche utilizzate dalla cabina fotografica hanno l'attributo ShowInPhotoBooth impostato su vero .Vedi Visibilità GUI per i dettagli e il codice di esempio.
mostraOtherGuis
showOtherGuis(Richiama: function )
Questa richiamata viene eseguita dopo che la stampa è stata chiusa, consentendoti di riabilitare l'intero ScreenGuis o gli elementi all'interno di esso.Le interfacce grafiche utilizzate dalla cabina fotografica hanno l'attributo ShowInPhotoBooth impostato su vero .Vedi Visibilità GUI per i dettagli e il codice di esempio.