Tirar uma foto é uma maneira perfeita de comemorar uma ótima experiência. O PhotoBooth módulo de desenvolvedor é uma ferramenta fácil de usar que permite que os jogadores coloquem uma postura única com um fundo que representa sua experiência.
Uso de Módulo
Instalação
Para usar o módulo Cabine de Fotógrafos em uma experiência:
Na aba Ver, abra a caixa de ferramentas e selecione a aba Loja do Criador.
Certifique-se de que a classificação Modelos foi selecionada, então clique no botão Ver Todos para Categorias .
Localize e clique no mosaico Modulos de Desenvolvedor .
Localize o módulo Cabine de Fotografia e clique nele, ou arraste e solte na janela de ver3D.
Na janela Explorer, mova o modelo completo de Cabine de Fotografia para ServerScriptService . Ao executar a experiência, o módulo será distribuído para vários serviços e começará a funcionar.
Posicionando o Estande
O módulo vem com um modelo Cabine de Fotógrafos que você pode colocar no mundo 3D. Este modelo é o que os jogadores interagem para configurar uma foto.
Localize a Melhoria de Fotógrafo malha dentro da pasta Espaço de Trabalho do módulo.
Mova-o para a hierarquia de nível superior da Área de Trabalho e coloque-o onde desejar.
Configuração
O módulo está predefinido para funcionar para a maioria dos casos de uso, mas pode ser facilmente personalizado através da função Configurar. Por exemplo, para alterar a mensagem padrão na parte inferior da foto:
In StarterPlayerScripts , create a new LocalScript and rename it to ConfigurePhotoBooth .
Paste o seguinte código no novo script.
LocalScript - ConfigurarCabine de Fotografoslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.configure({frameMessage = "First Photo Booth Capture!",})
Conectando a Eventos
Sempre que a cabine de fotos exibe uma nova tela para um cliente local, um evento correspondente é disparado. Esses eventos podem ser conectados em um LocalScript para que você possa responder com sua própria 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)
Visibilidade GUI
Por padrão, a cabine de fotos oculta todos os ScreenGuis e CoreGuis quando uma foto é estagiada. Se você quiser sobrepor esse comportamento de auto-esconder e programar, incluir os hideOtherGuis e 1> showOtherGuis1> scripts e responder com sua própria
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 = {}
-- Crie uma GUI de tela que não será escondida
local specialGuiInstance = Instance.new("ScreenGui")
-- Desenhe a GUI da tela acima da Interface gráfica do usuáriodo cabine de fotos
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Configurar atributo na GUI da tela para evitar o esconder
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Adicionar rótulo de texto à Interface gráfica do usuário
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 os GUIs de tela definidos pelo desenvolvedor, exceto aqueles marcados com 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 do núcleo específico
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Mostrar todas as GUI de tela definidas pelo desenvolvedor que estavam ocultas
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Mostrar GUIs de núcleo específicos que estavam ocultos
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)
Referência da API
Funções
configurar
Substitui as opções de configuração padrão através das seguintes chaves/valores na tabela config. Essa função só pode ser chamada de um LocalScript .
Chave | Descrição | Padrão |
---|---|---|
frameMessage | Mensagem que é mostrada na parte inferior da foto. Seu tempo de duração pode ser controlado via a propriedade fadeUiDelay. | “Use seu dispositivo para fazer uma captura de tela e compartilhar!” |
fadeUiDelay | É hora de mostrar a mensagem de quadro antes de desvanecer, em segundos. Definir para um número negativo para nunca desvanecer. | 3 |
closeButtonImage | Imagem para usar no botão de fechar a foto, colocado acima da imagem closeButtonBackgroundImage. | “rbxassetid://7027440823” |
closeButtonBackgroundImage | Imagem de fundo para usar no botão de fechar a foto. | “rbxassetid://7027440891” |
cameraLandscapePosition | Distância da Câmerada cabine de fotos, na frente e para cima do personagem, quando você está tirando uma foto no modo de paisagem ( Vector2 ). | (5, 2) |
cameraPortraitPosition | Distância da Câmerada cabine de fotos, na frente e para cima do personagem, ao tirar uma foto no modo de retrato ( Vector2 ). | (10, 1) |
countdownFont | Fonte para usar para os números no contador ( Enum.Font ). | GothamBlack |
countdownTextColor | Cor dos números no contador ( Color3 ). | [255, 255, 255] |
printoutCharacterPosition | Posição do personagem na tela quando o printout está mostrando ( UDim2 ). | (0.5, 0, 0.5, 0) |
printoutCharacterSize | Quantidade de espaço de tela que o personagem ocupa na saída de impressão ( UDim2 ). | (1, 0, 1, 0) |
characterAnimation | ID de ativo da animação que o personagem leva na foto, pausada em sua janela de partida. | “rbxassetid://6899663224” |
filterImage | Imagem para aplicar sobre a foto como um filtro. Se nil , um filtro padrão que ilumina as bordas da imagem será usado. | nil |
LocalScript - ConfigurarCabine de Fotografos
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
Substitui os fundos de fundo padrão fornecidos pela cabine de fotos. As imagens de fundo devem ser em 16:9 (1024×768) para uma experiência otimizada e seus IDs de ativos devem ser incluídos na matriz / listade fundos. 1–4 (inclusivo) fundos podem ser fornecidos.
Script Local
local ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.setBackgrounds({"rbxassetid://7018713114","rbxassetid://950538356",})
Eventos
倒计时开始
Dispara quando o contador começa. Este evento só pode ser conectado em um 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
Ocorre quando o printout é mostrado ao usuário. Este evento só pode ser conectado em um LocalScript .
Script Local
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
promptMostrado
Ocorre quando a saída de impressão é fechada e o botão da câmera é mostrado novamente. Este evento só pode ser conectado em um 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)
Chamadas
esconderOutrosGuis
Este retorno de chamada é executado imediatamente antes que o printout seja exibido, permitindo que você desative todo o ScreenGuis ou elementos dentro dele antes que o printout seja exibido. GUIs usados pela cabine de fotos têm o atributo MostrarNaFotobooth definido como true . Veja 2> códigode GUI2> para detalhes e có
MostrarOutrosGuis
Este retorno de chamada ocorre depois que a saída de impressão for fechada, permitindo que você reative toda a ScreenGuis ou elementos dentro deles. GUIs usados pela cabine de fotos têm o atributo MostrarNaFotobooth definido como verdadeiro . Veja 1> Visibilidade GUI1> para detalhes e código de exemplo.