Cabine de Foto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

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:

  1. Na aba Ver, abra a caixa de ferramentas e selecione a aba Loja do Criador.

    Toolbox toggle button in Studio
  2. Certifique-se de que a classificação Modelos foi selecionada, então clique no botão Ver Todos para Categorias .

  3. Localize e clique no mosaico Modulos de Desenvolvedor .

  4. Localize o módulo Cabine de Fotografia e clique nele, ou arraste e solte na janela de ver3D.

  5. 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.

  1. Localize a Melhoria de Fotógrafo malha dentro da pasta Espaço de Trabalho do módulo.

  2. 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:

  1. In StarterPlayerScripts , create a new LocalScript and rename it to ConfigurePhotoBooth .

  2. Paste o seguinte código no novo script.

    LocalScript - ConfigurarCabine de Fotografos

    local 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

configurar(config: table )

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 .

ChaveDescriçãoPadrão
frameMessageMensagem 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
closeButtonImageImagem para usar no botão de fechar a foto, colocado acima da imagem closeButtonBackgroundImage.“rbxassetid://7027440823”
closeButtonBackgroundImageImagem de fundo para usar no botão de fechar a foto.“rbxassetid://7027440891”
cameraLandscapePositionDistâ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)
cameraPortraitPositionDistâ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)
countdownFontFonte para usar para os números no contador ( Enum.Font ).GothamBlack
countdownTextColorCor dos números no contador ( Color3 ).[255, 255, 255]
printoutCharacterPositionPosição do personagem na tela quando o printout está mostrando ( UDim2 ).(0.5, 0, 0.5, 0)
printoutCharacterSizeQuantidade de espaço de tela que o personagem ocupa na saída de impressão ( UDim2 ).(1, 0, 1, 0)
characterAnimationID de ativo da animação que o personagem leva na foto, pausada em sua janela de partida.“rbxassetid://6899663224”
filterImageImagem 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

setBackgrounds(背景: table )

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

hideOtherGuis( retorno de chamada: function )

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

showOtherGuis( retorno de chamada: function )

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.