Tomar una foto es una manera perfecta de conmemorar una gran experiencia.El módulo PhotoBooth desarrollador fácil de usar es una herramienta de puesta en escena de fotos que permite a los jugadores tomar una postura única con un fondo que representa su experiencia.
Uso de módulo
Instalación
Para usar el módulo Fotomatón en una experiencia:
Asegúrese de que la clasificación de modelos esté seleccionada, luego haga clic en el botón Ver todo para categorías .
Localiza y haz clic en el mosaico Módulos de desarrollo .
Localiza el módulo Cabina de fotos y haz clic en él, o arrástralo a la vista 3D.
En la ventana Explorador, mueva todo el modelo PhotoBooth al servicio ServerScriptService .Al ejecutar la experiencia, el módulo se distribuirá a varios servicios y comenzará a funcionar.
Posiciona la cabina
El módulo viene con un modelo Fotomatón que puedes posicionar en el mundo 3D.Este modelo es con el que interactuarán los jugadores para configurar una foto.
Localiza la cabina de fotos malla dentro de la carpeta espacio de trabajo del directorio principal del módulo.
Móvelo a la jerarquía de nivel superior Espacio de trabajo y colócalo donde se desee.
Configuración
El módulo está preconfigurado para trabajar en la mayoría de los casos de uso, pero se puede personalizar fácilmente a través de la función configurar.Por ejemplo, para cambiar el mensaje predeterminado en la parte inferior de la foto:
En StarterPlayerScripts , crea un nuevo LocalScript y renómlalo a Configurar cabina de fotos .
Pega el siguiente código en el nuevo script.
LocalScript - Configurar cabina de fotoslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.configure({frameMessage = "First Photo Booth Capture!",})
Conectarse a eventos
Cada vez que la cabina de fotos muestra una nueva pantalla a un cliente local, se activa un evento correspondiente.Estos eventos se pueden conectar en un LocalScript para que puedas responder con tu propia lógica personalizada.
Guión local
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)
Visibilidad de la GUI
Por defecto, la cabina de fotos oculta todos los ScreenGuis y CoreGuis cuando se estrena una foto.Si quieres anular este comportamiento de ocultamiento automático y decidir programáticamente qué interfaces de usuario deben permanecer visibles, incluye los hideOtherGuis y showOtherGuis llamados de devolución y responde con tu propia lógica personalizada.
Guión local
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 = {}
-- Crear una interfaz gráfica de usuario de pantalla que no se ocultará
local specialGuiInstance = Instance.new("ScreenGui")
-- Dibuja la interfaz de usuario de la pantalla por encima de la interfaz de usuario de la cabina de fotos
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Establecer atributo en la interfaz gráfica de la pantalla para evitar el ocultamiento
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Añadir etiqueta de texto a la interfaz Interfaz gráfica (o 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()
-- Ocultar todas las interfaces de usuario definidas por el desarrollador excepto las marcadas con atributo
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
-- Ocultar interfaces de núcleo específicas
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Mostrar todas las interfaces de usuario definidas por el desarrollador que se ocultaron
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Mostrar interfaces de núcleo específicas que estaban ocultas
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)
Referencia de API
Funciones
configurar
configurar(config: table )
Anula las opciones de configuración predeterminadas a través de las siguientes claves/valores en la tabla config.Esta función solo se puede llamar desde un LocalScript .
Clave | Descripción | Por defecto |
---|---|---|
frameMessage | Mensaje que se muestra en la parte inferior de la foto. Su duración se puede controlar a través de la propiedad fadeUiDelay. | «Usa tu dispositivo para tomar una captura de pantalla y compartir» |
fadeUiDelay | Tiempo para mostrar el mensaje del marco antes de que desaparezca, en segundos. Establecer un número negativo para que nunca desaparezca. | 3 |
closeButtonImage | Imagen para usar para el botón de cerrar foto, colocado sobre la imagen closeButtonBackgroundImage. | “rbxassetid://7027440823” |
closeButtonBackgroundImage | Imagen de fondo para usar para el botón de cerrar foto. | “rbxassetid://7027440891” |
cameraLandscapePosition | Distancia de la cámara de la cabina de fotos, delante y hacia arriba desde el personaje, al tomar una foto en modo paisaje (Vector2). | (5, 2) |
cameraPortraitPosition | Distancia de la cámara de la cabina de fotos, delante y hacia arriba desde el personaje, al tomar una foto en modo retrato (Vector2). | (10, 1) |
countdownFont | Fuente para usar para los números en la cuenta regresiva ( Enum.Font ). | GothamBlack |
countdownTextColor | Color de los números en la cuenta regresiva ( Color3 ). | [255, 255, 255] |
printoutCharacterPosition | Posición del personaje en la pantalla cuando se muestra el informe (UDim2). | (0.5, 0, 0.5, 0) |
printoutCharacterSize | Cantidad de espacio de pantalla que el personaje ocupa en la impresión ( UDim2 ). | (1, 0, 1, 0) |
characterAnimation | ID de activo de la animación que el personaje toma en la foto, pausada en su marco de inicio. | “rbxassetid://6899663224” |
filterImage | Imagen para aplicar sobre la foto como filtro. Si nil , se usará un filtro predeterminado que oscurece los bordes de la imagen. | nil |
LocalScript - Configurar cabina de fotos
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),})
establecer fondos
setBackgrounds(backgrounds: table )
Anula los fondos predeterminados proporcionados por la cabina de fotos.Las imágenes de fondo deben tener una relación de aspecto de 16:9 (1024×768) para una experiencia óptima y sus ID de activos deben incluirse en el matriz/listade fondos.Se pueden proporcionar 1–4 (inclusivos) fondos de fondo.
Guión local
local ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.setBackgrounds({"rbxassetid://7018713114","rbxassetid://950538356",})
Eventos
cuenta regresivaIniciada
Se enciende cuando comienza la cuenta regresiva. Este evento solo se puede conectar en un LocalScript .
Guión local' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)
printoutMostrado
Se enciende cuando se muestra la impresión al usuario. Este evento solo se puede conectar en un LocalScript .
Guión local' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
promptMostrado
Se enciende cuando se cierra la impresión y el botón de la cámara se muestra nuevamente. Este evento solo se puede conectar en un LocalScript .
Guión local' 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)
Devoluciones de llamada
esconderOtherGuis
hideOtherGuis(devolución de llamada: function )
Esta llamada de devolución se ejecuta inmediatamente antes de que se muestre la impresión, permitiéndote deshabilitar toda la ScreenGuis o elementos dentro de ellos antes de que se muestre la impresión.Las interfaces gráficas utilizadas por la cabina de fotos tienen el atributo ShowInPhotoBooth establecido en verdadero .Vea Visibilidad de la interfaz gráfica para detalles y código de muestra.
mostrarOtherGuis
showOtherGuis(devolución de llamada: function )
Esta llamada de devolución se ejecuta después de que se haya cerrado la impresión, permitiéndote reactivar toda ScreenGuis o elementos dentro de ellos.Las interfaces gráficas utilizadas por la cabina de fotos tienen el atributo ShowInPhotoBooth establecido en verdadero .Vea Visibilidad de la interfaz gráfica para detalles y código de muestra.