Rozpoczęcie sesji zdjęciowej to idealny sposób na upamiętnienie wspaniałego doświadczenia.Moduł rozwojowy Fotobudka jest łatwym w użyciu narzędziem do stylizacji zdjęć, które pozwala graczom uderzyć w unikalną pozę z tłem, które reprezentuje ich doświadczenie.
Użycie modułu
Instalacja
Aby użyć modułu Fotobudka w doświadczeniu:
Upewnij się, że wybrano sortowanie modele , a następnie kliknij przycisk Zobacz wszystko dla kategorii .
Zlokalizuj i kliknij pasek modułów rozwojowych .
Zlokalizuj moduł stoisko fotograficzne i kliknij go, lub przeciągnij i upuść do widoku 3D.
W oknie Eksploratora przenieś cały model PhotoBooth do ServerScriptService .Po uruchomieniu doświadczenia moduł rozproszy się na różne usługi i rozpocznie działanie.
Pozycjonuj stoisko
Moduł zawiera jeden model Fotobudki , który możesz umieścić w świecie 3D.Ten model jest tym, z czym gracze będą interakcjonować, aby ustawić zdjęcie.
Zlokalizuj siatkę Fotobudka wewnątrz katalogu Przestrzeń robocza modułu głównego katalogu.
Przenieś ją do hierarchii najwyższego poziomu Przestrzeni roboczej i umieść ją tam, gdzie chcesz.
Konfiguracja
Moduł jest wstępnie skonfigurowany do pracy w większości przypadków użycia, ale można go łatwo dostosować za pomocą funkcji konfiguruj.Na przykład, aby zmienić domyślną wiadomość na dole zdjęcia:
W StarterPlayerScripts , utwórz nowy LocalScript i zmień nazwę na Konfiguruj fotobudkę .
Wklej następujący kod do nowego skryptu.
LocalScript - Konfiguruj fotobudkęlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.configure({frameMessage = "First Photo Booth Capture!",})
Połącz z wydarzeniami
Za każdym razem, gdy stoisko fotograficzne wyświetla nowy ekran dla lokalnego klienta, uruchamiane jest odpowiednie wydarzenie.Te wydarzenia mogą być połączone w LocalScript tak, abyś mógł odpowiedzieć za pomocą własnej niestandardowej logiki.
Lokalny skrypt
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)
Widzialność interfejsu GUI
Domyślnie stoisko fotograficzne ukrywa wszystkie ScreenGuis i CoreGuis gdy powstaje zdjęcie.Jeśli chcesz anulować to zachowanie automatycznego ukrywania i programowo zdecydować, które interfejsy użytkownika powinny pozostać widoczne, dodaj hideOtherGuis i showOtherGuis powroty i odpowiedz z własną niestandardową logiką.
Lokalny skrypt
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 = {}
-- Stwórz interfejs GUI ekranu, który nie zostanie ukryty
local specialGuiInstance = Instance.new("ScreenGui")
-- Narysuj interfejs użytkownika ekranu powyżej interfejsu użytkownika stoisk fotograficznych
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Ustaw atrybut na interfejsie GUI, aby zapobiec ukrywaniu
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Dodaj etykietę tekstową do interfejsu 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()
-- Ukryj wszystkie interfejsy ekranowe określone przez programistę, 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 konkretne podstawowe interfejsy GUI
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Pokaż wszystkie interfejsy użytkownika ekranu zdefiniowane przez programistę, które zostały ukryte
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Pokaż konkretne podstawowe interfejsy, które były ukryte
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)
Referencja API
Funkcje
skonfigurować
konfigurować(config: table )
Nadpisanie domyślnych opcji konfiguracyjnych za pomocą następujących kluczy/wartości w tabeli config.Funkcja ta może być wywołana tylko z LocalScript.
Klucz | Opis | Domyślny |
---|---|---|
frameMessage | Wiadomość, która jest wyświetlana na dole zdjęcia. Jego czas trwania można kontrolować za pomocą właściwości fadeUiDelay. | „Użyj swojego urządzenia, aby zrobić zrzut ekranu i udostępniaćsię nim!” |
fadeUiDelay | Czas na wyświetlenie wiadomości ramy, zanim się rozpłynie, w ciągu kilku sekund. Ustaw na negatywną liczbę, aby nigdy nie zniknęła. | 3 |
closeButtonImage | Obraz do użycia przy przycisku zamknięcia zdjęcia, umieszczonym nad obrazem closeButtonBackgroundImage. | „rbxassetid://7027440823” |
closeButtonBackgroundImage | Tło obrazu do użycia przy przycisku zamknięcia zdjęcia. | „rbxassetid://7027440891” |
cameraLandscapePosition | Odległość kamery fotobudki, przed i w górę od postaci, podczas robienia zdjęcia w trybie krajobrazowym ( Vector2 ). | (5, 2) |
cameraPortraitPosition | Odległość kamery fotobudki, przed i w górę od postaci, podczas robienia zdjęcia w trybie portretowym (Vector2). | (10, 1) |
countdownFont | Czcionka do użycia dla liczb w odliczaniu ( Enum.Font ). | GothamBlack |
countdownTextColor | Kolor liczb w odliczaniu ( Color3 ). | [255, 255, 255] |
printoutCharacterPosition | Pozycja znaku na ekranie, gdy wydruk jest wyświetlany (UDim2). | (0.5, 0, 0.5, 0) |
printoutCharacterSize | Ilość miejsca na ekranie, które postać zajmuje w wydruku ( UDim2 ). | (1, 0, 1, 0) |
characterAnimation | ID zasobu animacji, którą postać otrzymuje w zdjęciu, zatrzymana w ramie startowej. | „rbxassetid://6899663224” |
filterImage | Obraz, który ma zostać zastosowany nad zdjęciem jako filtr. Jeśli nil, zostanie użyty domyślny filtr, który ciemni krawędzie obrazu. | nil |
LocalScript - Konfiguruj fotobudkę
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),})
ustaw tła
setBackgrounds(backgrounds: table )
Zastępuje domyślne tła dostarczone przez stoisko fotograficzne.Tła obrazów powinny mieć stosunek aspektu 16:9 (1024×768) dla optymalnego doświadczenia, a ich ID zasobów powinny być zawarte w matrycy tła.Można dostarczyć 1–4 (włącznie) tła.
Lokalny skrypt
local ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.setBackgrounds({"rbxassetid://7018713114","rbxassetid://950538356",})
Wydarzenia
odliczanie rozpoczęte
Wybucha, gdy rozpoczyna się odliczanie. To wydarzenie można połączyć tylko w LocalScript.
Lokalny skrypt' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)
printoutPokazano
Wystrzeliwuje, gdy wydruk jest pokazany użytkownikowi. To wydarzenie może być połączone tylko w LocalScript.
Lokalny skrypt' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
promptPokazany
Wystrzeliwuje, gdy wydruk zostanie zamknięty i przycisk kamery znów się pokaże. To wydarzenie można połączyć tylko w LocalScript.
Lokalny skrypt' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)
Wezwania powrotne
ukryjOtherGuis
hideOtherGuis( callback: function )
Ten powrót wezwania uruchamia się natychmiast przed wyświetleniem wydruku, pozwalając ci wyłączyć całe ScreenGuis lub elementy w nich przed wyświetleniem wydruku.Interfejsy używane przez stoisko fotograficzne mają atrybut Pokaż w stoisku fotograficznym ustawiony na prawdę .Zobacz Widoczność interfejsu użytkownika dla szczegółów i kodu próbnego.
pokażOtherGuis
pokażOtherGuis( callback: function)
Ten powrót wykonuje się po zamknięciu wydruku, pozwalając ci ponownie włączyć całe ScreenGuis lub elementy w nich.Interfejsy używane przez stoisko fotograficzne mają atrybut Pokaż w stoisku fotograficznym ustawiony na prawdę .Zobacz Widoczność interfejsu użytkownika dla szczegółów i kodu próbnego.