Foto-Stand

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Ein Foto ist ein perfekter Weg, um eine großartige Erlebniszu feiern. Das Foto-ModulEntwickler-Modul ist ein einfaches Foto-Staging-Tool, mit dem die Spieler eine einzigartige Pose mit einem Hintergrund verwenden können, der ihre Erlebnisrepräsentiert.

Modul-Einsatz

Installation

Um das Foto-Stand-Modul in einem Erlebnis zu verwenden:

  1. Von der Ansicht-Registerkarte öffnen Sie die Werkzeugkiste und wählen Sie die Creator-Store -Registerkarte.

    Toolbox toggle button in Studio
  2. Stellen Sie sicher, dass die Models Sortierung ausgewählt ist, dann klicken Sie auf die Alle anzeigen Schaltfläche für Kategorien .

  3. Suchen Sie die Dev-Module -Kachel und klicken Sie darauf.

  4. Suchen Sie das Foto-Modul und klicken Sie darauf, oder ziehen Sie es in die 3D-Ansicht.

  5. In dem Explorer-Fenster bewegen Sie das gesamte PhotoBooth-Modell in ServerScriptService . Nach dem Laufen der Erlebniswird das Modul auf verschiedene Dienste verteilt und beginnt zu laufen.

Standort des Booths

Das Modul kommt mit einem Foto-Stand -Modell, das du in die 3D-Welt platzieren kannst. Dieses Modell ist das, mit dem Spieler interagieren, um ein Foto zu erstellen.

  1. Suchen Sie das PhotoBooth-Mesh im Workspace-Ordner der Hauptforderung des Moduls.

  2. Bewegen Sie es in die oberste Arbeitsbereich Hierarchie und positionieren Sie es dort, wo Sie möchten.

Konfiguration

Das Modul ist voreingestellt, um für die meisten Anwendungsfälle zu arbeiten, aber es kann leicht über die Konfigurieren-Funktion anpassen werden. Zum Beispiel, um das Standard-Nachricht unten im Bild zu ändern:

  1. In StarterPlayerScripts erstellen Sie ein neues LocalScript und benennen Sie es zu Konfigurieren SiePhotoBooth um.

  2. Fügen Sie den folgenden Code in das neue Skript, das. PL: die Skriptsein.

    Lokales Skript - Konfigurieren Sie den Foto-Stand

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
    PhotoBooth.configure({
    frameMessage = "First Photo Booth Capture!",
    })

Verbindung mit Ereignissen

Jedes Mal, wenn die Foto-Kabine ein neues Bildschirm an einen lokalen Client anzeigt, wird ein entsprechendes Ereignis ausgelöst. Diese Ereignisse können in einem LocalScript verbunden werden, damit Sie mit Ihrer eigenen benutzerdefinierten Logik antworten können.

Lokales Skript

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)

GUI-Sichtbarkeit

Standardmäßig versteckt die Fotobooth alle ScreenGuis und CoreGuis wenn ein Foto gesichtet wird. Wenn Sie dieses automatische Verhalten überschreiben und programmieren möchten, dass die GUI, die nicht sichtbar sein soll, mit Ihrer eigenen Logik sichtbar ist, enthalten Sie den hideOtherGuis

Lokales Skript

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 = {}
-- Erstellen Sie ein Bildschirmsystem, das nicht versteckt wird
local specialGuiInstance = Instance.new("ScreenGui")
-- Ziehen Sie das Bild über die grafische Benutzeroberfläche
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Setzen Sie das Attribut auf dem Bildschirm-GUI, um das Verbergen zu verhindern
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Text-Label zum grafische Benutzeroberflächehinzufügen
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()
-- Verbergen Sie alle entwicklerdefinierten Bildschirm-GUI, mit Ausnahme jener, die mit dem Attribut versehen sind
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
-- Bestimmte Kern-GUIs ausblenden
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Zeige alle entwicklerdefinierten Bildschirm-GUIs, die versteckt waren
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Zeige bestimmte Kern-GUI, die versteckt waren
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

API-Referenz

Funktionen

konfigurieren

konfigurieren(config: table )

Überschreibt Standard-Konfigurationsoptionen durch die folgenden Schlüssel/ Werte in der config Tabelle. Diese Funktion kann nur von einem LocalScript ausgerufen werden.

SchlüsselBeschreibungStandard
frameMessageNachricht, die unten des Fotos angezeigt wird. Ihre Dauer kann über die EigenschaftenfadeUiDelay kontrolliert werden.„Benutze dein Gerät, um einen Screenshot zu machen und ihn zu teilen!“
fadeUiDelayZeit, den Frames-Message zu zeigen, bevor er ausgeblendet wird, in Sekunden. Setzen Sie auf eine negative Zahl, um nie zu blenden.3
closeButtonImageBild zu verwenden für die Schaltfläche "Nicht mehr anzeigen", die über dem closeButtonBackgroundImage-Bild platziert ist.„rbxassetid://7027440823“
closeButtonBackgroundImageHintergrundbild für die Nutzung des Schaltflächters "Nicht mehr anzeigen".„rbxassetid://7027440891“
cameraLandscapePositionEntfernung der Kamera des Foto-Standards, vor und oben vom Charakter, wenn Sie ein Foto im Landscape-Modus aufnehmen (Vector2).(5, 2)
cameraPortraitPositionEntfernung der Kamera des Foto-Standards, vor und oben vom Charakter, wenn Sie ein Foto im Porträtmodus aufnehmen (Vector2).(10, 1)
countdownFontFont für die Zahlen im Countdown ( Enum.Font ).GothamBlack
countdownTextColorFarbe der Zahlen im Countdown ( Color3 ).[255, 255, 255]
printoutCharacterPositionPosition des Charakters auf dem Bildschirm, wenn die Ausgabe angezeigt wird ( UDim2 ).(0.5, 0, 0.5, 0)
printoutCharacterSizeBereich der Bildschirmaufnahme, den der Charakter in der Ausgabe ( UDim2 ) einnimmt.(1, 0, 1, 0)
characterAnimationAsset-ID der Animation, die der Charakter in dem Foto, das er bei seinem Startrahmen anhält, einnimmt.„rbxassetid://6899663224“
filterImageBild wird über das Foto angewendet als Filter. Wenn nil , ein Standard-Filter verwendet, der die Bildkanten dunkelt.nil
Lokales Skript - Konfigurieren Sie den Foto-Stand

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 )

Überschreibt die Standard-Hintergründe, die vom Foto-Stand bereitgestellt werden. Hintergrundbilder sollten in 16:9-Aspekt比率 (1024×768) für ein optimales Erlebnis und ihre Asset-IDs sollten in der Arrayenthalten sein. 1–4 (einschließlich) Hintergründe können bereitgestellt werden.

Lokales Skript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.setBackgrounds({
"rbxassetid://7018713114",
"rbxassetid://950538356",
})

Ereignisse

countdownStarted

Feuert wenn der Countdown beginnt. Dieses Ereignis kann nur in einem LocalScript verbunden werden.

Lokales Skript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)

printoutShown

Feuert, wenn das gedruckte Papier dem Benutzer angezeigt wird. Dieses Ereignis kann nur in einem LocalScript verbunden werden.

Lokales Skript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)

promptZeigt

Feuert, wenn das Ausgabe geschlossen ist und die Kamera-Schaltfläche erneut angezeigt wird. Dieses Ereignis kann nur in einem LocalScript verbunden werden.

Lokales Skript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)

Rückrufe

Andere Guis ausblenden

andere Guis (Callback: function )

Dieser Rückruf wird sofort vor dem Ausdruck ausgeführt, sodass Sie das gesamte ScreenGuis oder Elemente innerhalb von ihnen deaktivieren können, bevor das Ausdruck ausgeführt wird. GUIs, die von der Foto-Booth verwendet werden, haben den Attribut ShowInPhotoBooth auf true festgelegt. Siehe 1> Codesfür Details und Beisp

AndereGuis anzeigen

showOtherGuis(Callback: function )

Dieser Rückruf wird ausgelöst, nachdem der Druckausguss geschlossen ist, so dass Sie die gesamte ScreenGuis oder Elemente innerhalb von ihnen wieder aktivieren können. GUIs, die von der Foto-Booth verwendet werden, haben den Attribut ShowInPhotoBooth auf true festgelegt. Siehe 1> GUI-Sichtbarkeit1> für Details und Codes.