Budka fotograficzna

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Robienie zdjęcia to doskonały sposób na uwiecznienie wspaniałego doświadczenia. Moduł PhotoBooth moduł dewelopera to prosty w użyciu narzędzie do aranżacji zdjęć, które pozwala graczom przyjąć unikalną pozę z tłem, które reprezentuje ich przeżycia.

Użycie modułu

Instalacja

Aby użyć modułu PhotoBooth w doświadczeniu:

  1. Z menu Okno w Studio lub z paska narzędzi na karcie Strona główna, otwórz Zasobnik i wybierz zakładkę Sklep twórcy.

  2. Upewnij się, że wybrano sortowanie Modele, a następnie kliknij przycisk Zobacz wszystko dla Kategorii.

  3. Zlokalizuj i kliknij kafelek Pakiety.

  4. Zlokalizuj moduł Budka fotograficzna i kliknij go lub przeciągnij go do widoku 3D.

  5. W oknie Eksplorator przenieś cały model PhotoBooth do ReplicatedStorage. Po uruchomieniu doświadczenia moduł zacznie działać.

Pozycjonowanie budki

Moduł zawiera jeden model Budka fotograficzna, który możesz umieścić w świecie 3D. Ten model to to, z czym będą wchodzić w interakcję gracze, aby ustawić zdjęcie.

  1. Zlokalizuj siatkę Budka fotograficzna wewnątrz folderu Workspace głównego folderu modułu.

  2. Przenieś go do najwyższego poziomu hierarchii Workspace i umieść w pożądanym miejscu.

Konfiguracja

Moduł jest wstępnie skonfigurowany do działania w większości przypadków użycia, ale można go łatwo dostosować za pomocą funkcji konfiguracji. Na przykład, aby zmienić domyślny komunikat na dole zdjęcia:

  1. W StarterPlayerScripts utwórz nowy LocalScript i zmień jego nazwę na ConfigurePhotoBooth.

  2. Wklej następujący kod do nowego skryptu.

    LocalScript - ConfigurePhotoBooth

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
    PhotoBooth.configure({
    frameMessage = "Pierwsze zdjęcie w Budce!",
    })

Połączenie z wydarzeniami

Za każdym razem, gdy budka fotograficzna wyświetla nowy ekran dla lokalnego klienta, wyzwalane jest odpowiednie wydarzenie. Te wydarzenia mogą być połączone w LocalScript, aby można było odpowiedzieć własną logiką.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.countdownStarted:Connect(function()
print("Odmierzanie czasu się rozpoczęło")
end)
PhotoBooth.printoutShown:Connect(function()
print("Wydruk jest wyświetlany")
end)
PhotoBooth.promptShown:Connect(function()
print("Wyświetlany jest komunikat z kamerą")
end)

Widoczność GUI

Domyślnie budka fotograficzna ukrywa wszystkie ScreenGuis i CoreGuis, gdy zdjęcie jest aranżowane. Jeśli chcesz nadpisać to automatyczne ukrywanie i programowo zdecydować, które GUI powinny pozostać widoczne, dodaj wywołania hideOtherGuis i showOtherGuis i odpowiedz własną logiką.

LocalScript

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local StarterGui = game:GetService("StarterGui")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local hiddenInstances = {}
-- Utwórz GUI ekranowe, które nie będzie ukrywane
local specialGuiInstance = Instance.new("ScreenGui")
-- Rysuj GUI ekranowe nad GUI budki fotograficznej
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Ustaw atrybut na GUI ekranowym, aby zapobiec ukrywaniu
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Dodaj etykietę tekstową do GUI
local specialLabel = Instance.new("TextLabel")
specialLabel.Size = UDim2.fromScale(1, 0.1)
specialLabel.Text = "Pozostaje widoczne przy robieniu zdjęcia"
specialLabel.Font = Enum.Font.GothamMedium
specialLabel.TextSize = 24
specialLabel.Parent = specialGuiInstance
PhotoBooth.hideOtherGuis(function()
-- Ukryj wszystkie zdefiniowane przez dewelopera GUI ekranowe, z wyjątkiem tych oznaczonych atrybutem
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
-- Ukryj określone GUI rdzenne
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Pokaż wszystkie zdefiniowane przez dewelopera GUI ekranowe, które były ukryte
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Pokaż określone GUI rdzenne, które były ukryte
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

Referencje API

Funkcje

configure

configure(config: table)

Nadpisuje domyślne opcje konfiguracyjne za pomocą następujących kluczy/wartości w tabeli config. Ta funkcja może być wywoływana tylko z LocalScript.

KluczOpisDomyślna
frameMessageWiadomość wyświetlana na dole zdjęcia. Jej czas trwania można kontrolować za pomocą właściwości fadeUiDelay."Użyj swojego urządzenia do zrobienia zrzutu ekranu i podziel się!"
fadeUiDelayCzas, przez jaki wyświetlana jest wiadomość w ramce przed jej zniknięciem, w sekundach. Ustaw na liczbę ujemną, aby nigdy nie znikała.3
closeButtonImageObraz do użycia na przycisku zamknięcia zdjęcia, umieszczony na obrazie closeButtonBackgroundImage."rbxassetid://7027440823"
closeButtonBackgroundImageObraz tła do użycia na przycisku zamknięcia zdjęcia."rbxassetid://7027440891"
cameraLandscapePositionOdległość kamery budki fotograficznej, na przód i do góry od postaci, podczas robienia zdjęcia w trybie poziomym (Vector2).(5, 2)
cameraPortraitPositionOdległość kamery budki fotograficznej, na przód i do góry od postaci, podczas robienia zdjęcia w trybie pionowym (Vector2).(10, 1)
countdownFontCzcionka używana dla cyfr w odmierzaniu czasu (Enum.Font).GothamBlack
countdownTextColorKolor cyfr w odmierzaniu czasu (Color3).[255, 255, 255]
printoutCharacterPositionPozycja postaci na ekranie, gdy wydruk jest wyświetlany (UDim2).(0.5, 0, 0.5, 0)
printoutCharacterSizeIlość miejsca na ekranie zajmowanego przez postać na wydruku (UDim2).(1, 0, 1, 0)
characterAnimationID zasobu animacji, w której postać wykonuje zdjęcie, zatrzymana na klatce startowej."rbxassetid://6899663224"
filterImageObraz do zastosowania na zdjęciu jako filtr. Jeśli nil, zastosowany zostanie domyślny filtr, który przyciemnia krawędzie obrazu.nil
LocalScript - ConfigurePhotoBooth

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.configure({
frameMessage = "Jakie fajne ujęcie!",
fadeUiDelay = 5,
maxActivationDistance = 5,
printoutCharacterSize = UDim2.fromScale(1.5, 1.5),
})

setBackgrounds

setBackgrounds(backgrounds: table)

Nadpisuje domyślne tła dostarczone przez budkę fotograficzną. Obrazy tła powinny mieć proporcje 16:9 (1024×576) dla optymalnego doświadczenia, a ich ID zasobów powinny być zawarte w tablicy z tłem. Można dostarczyć od 1 do 4 (włącznie) tła.

LocalScript

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

Wydarzenia

countdownStarted

Wyzwala, gdy odmierzanie czasu się rozpoczyna. To wydarzenie może być połączone tylko w LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.countdownStarted:Connect(function()
print("Odmierzanie czasu się rozpoczęło")
end)

printoutShown

Wyzwala, gdy wydruk jest pokazywany użytkownikowi. To wydarzenie może być połączone tylko w LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.printoutShown:Connect(function()
print("Wydruk jest wyświetlany")
end)

promptShown

Wyzwala, gdy wydruk jest zamknięty, a przycisk kamery znów jest wyświetlany. To wydarzenie może być połączone tylko w LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.promptShown:Connect(function()
print("Wyświetlany jest komunikat z kamerą")
end)

Wywołania zwrotne

hideOtherGuis

hideOtherGuis(callback: function)

Ten wywołanie zwrotne wykonuje się natychmiast przed wyświetleniem wydruku, pozwalając na wyłączenie całych ScreenGuis lub elementów w nich przed wyświetleniem wydruku. GUI używane przez budkę fotograficzną mają atrybut ShowInPhotoBooth ustawiony na true. Zobacz Widoczność GUI dla szczegółów i przykładowego kodu.

showOtherGuis

showOtherGuis(callback: function)

Ten wywołanie zwrotne wykonuje się po zamknięciu wydruku, pozwalając ponownie włączyć całe ScreenGuis lub elementy w nich. GUI używane przez budkę fotograficzną mają atrybut ShowInPhotoBooth ustawiony na true. Zobacz Widoczność GUI dla szczegółów i przykładowego kodu.

©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.