Tomar una foto es una manera perfecta de conmemorar una gran experiencia. El PhotoBooth módulo de desarrollador es una herramienta de fotografía fácil de usar que permite a los jugadores tomar una posa única con un fondo que representa su experiencia.
Uso de módulos
Instalación
Para usar el módulo Cabina de fotos en una experiencia:
De la pestaña Ver, abra la Caja de herramientas y seleccione la pestaña Tienda del Creador .
Asegúrese de que se seleccione el Modelos clasificación y luego haga clic en el botón Ver Todo para Categorías .
Ubique y haga clic en el mosaico de Modulos de Dev .
Ubique el módulo Cabina de fotos y haga clic en él, o arrástralo y suéltalo en la vista 3D.
En la ventana Explorer, mueva el modelo entero de PhotoBooth a ServerScriptService . Al ejecutar la experiencia, el módulo se distribuirá a varios servicios y comenzará a funcionar.
Colocando el stand
El módulo viene con un modelo de Cabina de Fotomultas que puedes colocar en el mundo 3D. Este modelo es lo que los jugadores interactuarán para configurar una foto.
Encuentra el malla Cabina de Fotografía dentro del directorio principal de la carpeta Espacio de Trabajo del módulo.
Móvelo a la nivel superior de la hierarquía del espacio de trabajo y colócalo donde quieras.
Configuración
El módulo está predefinido para trabajar para 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 renombralo a ConfigurarFotomatón .
Pega el siguiente código en el nuevo script.
LocalScript - ConfigurarCabinaFotográficalocal ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.configure({frameMessage = "First Photo Booth Capture!",})
Conectando a los 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 pueda responder con su propia lógica personalizada.
Script 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 GUI
Por defecto, la cabina de fotos oculta todos los ScreenGuis y CoreGuis cuando se establece una foto. Si desea sobrepasar este comportamiento de auto-ocultamiento y programar qué GUI deben permanecer visibles, incluir los controles de otros guis y 2>mostrar otros guis2> y respon
Script 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 = {}
-- Cree una GUI de pantalla que no se ocultará
local specialGuiInstance = Instance.new("ScreenGui")
-- Dibuja la interfaz de usuario de la GUI de la cabina de fotos por encima de la Interfaz gráfica (o GUI)de la cabina de fotos
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Establece el atributo en la GUI de la pantalla para evitar ocultar
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Añadir etiqueta de texto a la 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 todos los GUI de pantalla definidos por el desarrollador excepto los marcados 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 GUI del núcleo específicas
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Mostrar todos los GUI de pantalla definidos por el desarrollador que se ocultaban
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Mostrar GUI del núcleo específicas que se ocultaron
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)
Referencia de API
Funciones
configurar
Anula las opciones de configuración predeterminadas a través de las siguientes llaves/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 | Es hora de mostrar el mensaje de marco antes de que se desvanezca, en segundos. Establece un número negativo para no desaparecer. | 3 |
closeButtonImage | Imagen para usar para el botón de cierre de la foto, colocado por encima de la imagen closeButtonBackgroundImage . | haga clic aquí para ver la lista de propiedades de rbx. |
closeButtonBackgroundImage | Imagen de fondo para usar para el botón de cierre de la foto. | haga clic aquí para ver la lista de propiedades de rbx. |
cameraLandscapePosition | Distancia de la cámara de la cabina de fotos, en frente y hacia arriba del personaje, al tomar una foto en modo de paisaje ( Vector2 ). | (5, 2) |
cameraPortraitPosition | Distancia de la cámara de la cabina de fotos, en frente y hacia arriba del 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 resultado de impresión ( 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 la animación que el personaje toma en la foto, enmarcada en su marco de inicio. | ""rboxassetid://6899663224" |
filterImage | Imagen para aplicar sobre la foto como filtro. Si nil , se usará un filtro por defecto que oscurece los bordes de la imagen. | nil |
LocalScript - ConfigurarCabinaFotográfica
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
Sobrescubre los fondos de pantalla predeterminados proporcionados por la cabina de fotos. Las imágenes de fondo deben estar en el aspecto 16: 9 (1024 × 768) para una experiencia óptima y sus ID de activos deben estar incluidos en el matriz/listade fondos. 1–4 (incluido) fondos pueden ser proporcionados.
Script local
local ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.setBackgrounds({"rbxassetid://7018713114","rbxassetid://950538356",})
Eventos
countdownIniciado
Se activa cuando termina la cuenta regresiva. Este evento solo se puede conectar en un LocalScript .
Script local
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)
printoutMostrado
Se activa cuando se muestra el printout al usuario. Este evento solo se puede conectar en un LocalScript .
Script local
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
提示Show
Se activa cuando se cierra el panel de impresión y el botón de la cámara se muestra de nuevo. Este evento solo se puede conectar en un LocalScript .
Script local
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)
Llamadas
esconderOtroGuis
Este llamado se ejecuta inmediatamente antes de que se muestre el printout, lo que te permite desactivar todo ScreenGuis o elementos dentro de ellos antes de que se muestre el printout. Los GUI usados por la cabina de fotos tienen el atributo MostrarEnPhotoBooth establecido a true . Vea 1> Visibilidad de GUI1> para obtener det
mostrarOtroGuis
Este llamado se ejecuta después de que se cierre la impresión, lo que te permite reactivar todo ScreenGuis o elementos dentro de ellos. Los GUI usados por la cabina de fotos tienen el atributo MostrarEnPhotoBooth establecido como true . Ve a ver 2> Visibilidad de GUI2> para obtener más información y código de ejemplo.