Fare una foto è un modo perfetto per commemorare una grande esperienza. Il modulo dello sviluppatore di PhotoBooth è uno strumento di messa in scena fotografica facile da usare, che consente ai giocatori di fare una foto unica con uno sfondo che rappresenta la loro esperienza completata.
Utilizzo del modulo
Installazione
Per utilizzare il modulo PhotoBooth in un'esperienza:
Dalla scheda Visualizza, aprire il Pannello degli strumenti e selezionare la scheda Marketplace.
Assicurarsi che la selezione dei modelli sia selezionata, quindi fare clic sul pulsante Vedi tutto per le Categorie.
Individuare e fare clic sulla piastrella DEV MODULES.
Individuare il modulo della cabina foto e fare clic su di esso, oppure trascinarlo e lasciarlo nella visualizzazione 3D.
Nella finestra Explorer, spostare l'intero modello PhotoBooth in ServerScriptService. Dopo aver avviato l'esperienza, il modulo si distribuirà a vari servizi e inizierà a funzionare.
Posizionare la cabina
Il modulo è dotato di un modello PhotoBoot che è possibile posizionare nel mondo 3D. I giocatori interagiranno con questo modello per impostare una foto.
Individuare la rete PhotoBooth all'interno della cartella Spazio di lavoro della cartella principale del modulo.
Spostarla nel livello alto della gerarchia dello Spazio di lavoro e posizionarla dove si desidera.
Configurazione
Il modulo è preconfigurato per funzionare nella maggior parte dei casi di utilizzo, ma può essere facilmente personalizzato attraverso la funzione di configurazione. Ad esempio, per modificare il Messaggio di default in fondo alla foto:
In StarterPlayerScripts, crea un nuovo LocalScript e rinominalo in ConfigurePhotoBooth.
Incolla il seguente codice nel nuovo Script.
LocalScript - ConfigurePhotoBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.configure({frameMessage = "First Photo Booth Capture!",})
Collegarsi agli eventi
Ogni volta che la cabina foto visualizza una nuova schermata per un client locale, un evento corrispondente viene lanciato. Questi eventi possono essere collegati in un LocalScript in modo da consentirti di rispondere con la tua logica personalizzata.
LocalScript
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à Interfaccia grafica utente
Per impostazione predefinita, la cabina foto nasconde tutto ScreenGuis e CoreGuis quando una foto è in corso. Se vuoi sovrascrivere questo comportamento di auto-hiding e decidere programmaticamente se le GUI debbano rimanere visibili, includi la nascondiAltreGui e i comandi di richiamo mostraAltreGui 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:WaitForChild("PhotoBooth"))
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local hiddenInstances = {}
-- Create a screen GUI that will not be hidden
local specialGuiInstance = Instance.new("ScreenGui")
-- Draw the screen GUI above the photo booth GUI
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Set attribute on screen GUI to prevent hiding
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Add text label to the GUI
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()
-- Hide all developer-defined screen GUIs except those marked with attribute
local instances = playerGui:GetChildren()
for _, instance in pairs(instances) do
if instance:IsA("ScreenGui") and not instance:GetAttribute("ShowInPhotoBooth") and instance.Enabled then
instance.Enabled = false
table.insert(hiddenInstances, instance)
end
end
-- Hide specific core GUIs
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Show all developer-defined screen GUIs that were hidden
for _, instance in pairs(hiddenInstances) do
instance.Enabled = true
end
hiddenInstances = {}
-- Show specific core GUIs that were hidden
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)
Riferimento API
Funzioni
Configurare
configure(config:table):nil
Sovrascrive la configurazione predefinita attraverso le seguenti chiavi/valori nella configtabella. Questa funzione può essere chiamata solo da un LocalScript.
Aspetto
Chiave | Descrizione | Predefinito |
---|---|---|
frameMessage | Messaggio che viene visualizzato in fondo alla foto. La sua durata può essere controllata tramite la proprietà fadeUiDelay. | "Usa il tuo dispositivo per fare uno screenshot e condividere!" |
fadeUiDelay | Tempo di visualizzazione del messaggio di cornice prima che svanisca in pochi secondi. Impostare un numero negativo in modo che non svanisca mai. | 3 |
closeButtonImage | Immagine da utilizzare per Chiudere il pulsante della foto, posta sopra l'immagine closeButtonBackgroundImage. | "rbxassetid://7027440823" |
closeButtonBackgroundImage | Immagine di sfondo da utilizzare per il pulsante di chiusura della foto. | "rbxassetid://7027440891" |
cameraLandscapePosition | Distanza della Telecamera della cabina foto, davanti e verso l'alto rispetto al personaggio, quando si scatta una foto in modalità Orizzontale o verticale (Vector2). | (5, 2) |
cameraPortraitPosition | Distanza della Telecamera della cabina foto, davanti e verso l'alto rispetto al personaggio, quando si scatta una foto in modalità Orizzontale o verticale ().re, quando si prende una foto portrait mode (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 sulla schermata quando la stampa viene visualizzata (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 | risorsa ID dell'animazione che il personaggio prende nella foto, interrotta alla sua cornice di partenza. | "rbxassetid://6899663224" |
filterImage | Immagine da applicare sulla foto come Filtro. Se nil, verrà utilizzato un Filtro predefinito che scurisce i bordi dell'immagine. | nil |
Comportamento
Chiave | Descrizione | Predefinito |
---|---|---|
maxActivationDistanze | Distanza massima, all'interno degli indicatori, a cui il personaggio di un giocatore può posizionarsi all'interno della cabina foto affinché il prompt venga visualizzato. | 10 |
countdownBeepSound | ID risorsa del Sound da attivare per ogni numero visualizzato nel conto alla rovescia. | Questo"rbxassetid://7743999789"` |
countdownFlashSound | ID risorsa del Sound da attivare quando l'effetto flash viene visualizzato. | "rbxassetid://7744000850" |
countdownseconds | Numero di secondi del conto alla rovescia. | 3 |
Altro
Chiave | Descrizione | Predefinito |
---|---|---|
photoboothTag | Tag utilizzata da CollectionService per trovare tutte le "cabine" nel posto. | "PhotoBooth"` |
LocalScript - ConfigurePhotoBooth
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),})
setBackgrounds
setBackgrounds(background:table):nil
Oltrepassa gli sfondi predefiniti forniti dalla cabina foto. Le immagini di sfondo dovrebbero rispettare delle proporzioni di 16:9 (1024×768) per un'esperienza ottimale e la Risorsa ID dovrebbe essere inclusa nella gamma degli sfondi. Gli sfondi da 1–4 (inclusi) possono essere forniti.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.setBackgrounds({"rbxassetid://7018713114","rbxassetid://950538356",})
Eventi
countdownStarted
countdownStarted(): RBXScriptSignal
Viene lanciato quando parte il conto alla rovescia. Questo evento può essere collegato solo in un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)
printoutShown
printoutShown(): RBXScriptSignal
Viene lanciato quando la stampa viene visualizzata dall'utente. Questo evento può essere collegato solo in un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
promptShown
promptShown(): RBXScriptSignal
Viene lanciato quando la stampa è chiusa e la Telecamera si apre di nuovo. Questo evento può essere collegato solo in un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)
Richiami
hideOtherGuis
hideOtherGuis(callback:funzione)
Il comando Richiama viene eseguito immediatamente prima che la stampa venga visualizzata, permettendoti di disattivare l'intero ScreenGuis o gli elementi all'interno prima di procedere alla stampa. Le GUI usate dalla cabina foto hanno l'attributo ShowInPhotoBooth impostato su true. Vedere Visibilità Interfaccia grafica utente per dettagli e codice campione.
showOtherGuis
showOtherGuis(callback:funzione)
Il comando Richiama viene eseguito dopo che la stampa è stata chiusa, permettendoti di riabilitare l'intero ScreenGuis o gli elementi all'interno. Le GUI usate dalla cabina foto hanno l'attributo ShowInPhotoBooth impostato su true. Vedere Visibilità Interfaccia grafica utente per dettagli e codice campione.