Fotografowanie to doskonały sposób na uczczenie wielkiego doświadczenia. PhotoBoothmoduł rozwoju jest łatwym narzędziem do fotografowania, które umożliwia graczom uderzenie unikalnej pozy z tła, które reprezentuje ich doświadczenie.
Użyj modułu
Instalacja
Aby użyć modułu Fotobudka w doświadczeniu:
Z zakładki Zobacz, otwórz Skrzynię narzędzi i wybierz Sklep z twórcami.
Upewnij się, że Modele sortowanie jest zaznaczone, a następnie kliknij przycisk Zobacz wszystko dla Kategorie.
Lokalizuj i klikaj na płytę Moduły Rozwoju .
Lokalizuj moduł Fotobudka i kliknij na niego, lub przeciągnij go do 3D-wizualizacji.
W oknie Explorer przenieś cały model PhotoBooth do ServerScriptService . Po uruchomieniu doświadczenia moduł zostanie rozdzielony na różne usługi i zacznie działać.
Pozycjonowanie Stoiska
Moduł kompletyuje jeden model Fotobudki , który możesz umieścić w świecie 3D. Jest to właśnie z modelu gracze będą interagować, aby ustawić fotografię.
Lokalizuj Pokaz zdjęć wierzchownik w Workspace działce modułu głównego.
Przenieś go do najwyższego poziomu hierarchii Workspace i umieść go tam, gdzie chcesz.
Konfiguracja
Moduł jest zaprojektowany tak, aby działał dla większości przypadków użycia, ale można go łatwo dostosować poprzez funkcję konfiguruj. Na przykład, aby zmienić domyślną wiadomość na dole zdjęcia:
W StarterPlayerScripts , utwórz nowy LocalScript i zmień go na KonfigurujFotobudkę .
Wklej następujący kod do nowego skryptu.
Lokalny Skrypt - KonfigurujCabinęFotograficznąlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.configure({frameMessage = "First Photo Booth Capture!",})
Łączenie z wydarzeniami
Za każdym razem, gdy fotobudka wyświetla nowy ekran dla lokalnego klienta, zostaje uruchomiony odpowiedni wątek zdarzenia. Te wątki można połączyć w LocalScript, aby móc reagować z własną niestandardową logiką.
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)
Widoczność GUI
Domyślnie fotobudka ukrywa wszystkie ScreenGuis i CoreGuiskiedy zdjęcie jest zapisane, jeśli chcesz zmienić ten automatyczny ukrywania zachowań i programowo zdecydować, które GUI powinny pozostać widoczne, włącz
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 = {}
-- Utwórz interfejs użytkownika, który nie zostanie ukryty
local specialGuiInstance = Instance.new("ScreenGui")
-- Rozrysuj GUI ekranu ponad GUI fotobudki
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- Ustaw atrybut na GUI ekranu, aby zapobiec ukrywaniu
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- Dodaj etykietę tekstową do interfejsu
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 użytkownika zdefiniowane przez programistę, z wyjątkiem tych zaznaczonych 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 GUI związane z rdzeniem
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- Pokaż wszystkie interfejsy użytkownika zdefiniowane przez programistę, które były ukryte
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- Pokaż specjalne interfejsy użytkownika głównego, które zostały ukryte
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)
Referencja API
Funkcje
konfigurować
Przywraca domyślne opcje konfiguracji poprzez następujące klucze/werte w tabeli config. Ta funkcja może być wywołana tylko z LocalScript .
Klucz | Opis | Domyślny |
---|---|---|
frameMessage | Wiadomość, która jest pokazana w dolnej części zdjęcia. Jej trwałość można kontrolować za pośrednictwem właściwości fadeUiDelay. | „Użyj swojego urządzenia, aby zrobić zdjęcie ekranu i udostępniaćsię nim!” |
fadeUiDelay | Pora pokazać wiadomość o ramach, zanim zniknie, w sekundach. Ustaw na ujemną liczbę, aby nigdy się nie zniknęło. | 3 |
closeButtonImage | Obraz do użycia dla przycisku zamknięcia, umieszczony nad closeButtonBackgroundImage obrazem. | „rbxassetid://7027440823” |
closeButtonBackgroundImage | Zdjęcie tła do użycia dla przycisku zamknięcia zdjęcia. | „rbxassetid://7027440891” |
cameraLandscapePosition | Odległość kamery fotobudki, przed i w górę od postaci, podczas gdy robi się zdjęcie w trybie krajobrazu ( Vector2 ). | (5, 2) |
cameraPortraitPosition | Odległość kamery fotobudki, przed i w górę od postaci, przy braniu zdjęcia w trybie portretu ( Vector2 ). | (10, 1) |
countdownFont | Font do użycia dla liczb w liczbie odlicznej ( Enum.Font ). | GothamBlack |
countdownTextColor | Kolor liczb w liczbie odliczowej ( Color3 ). | [255, 255, 255] |
printoutCharacterPosition | Pozycja znaku na ekranie, gdy wydruk jest pokazany ( UDim2 ). | (0.5, 0, 0.5, 0) |
printoutCharacterSize | Ilość obszaru ekranu, którego zajmuje postać w wydruku ( UDim2 ). | (1, 0, 1, 0) |
characterAnimation | ID zasobu animacji, którą postać w zdjęciu wstrzymała w klatce startowej. | „rbxassetid://6899663224” |
filterImage | Obraz do zastosowania nad zdjęciem jako filtr. Jeśli nil , będzie używany domyślny filtr, który zmniejsza krawędzie obrazu. | nil |
Lokalny Skrypt - KonfigurujCabinęFotograficzną
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),})
ustawienia tła
Przywraca domyślne tła dostarczone przez fotobudkę. Obrazy tła powinny być w rozdzielczości 16: 9 (1024 × 768) dla optymalnego doświadczenia i ich ID zasobów powinny być włączone w tła. 1–4 (włącznie) tła można zapewnić.
Lokalny Skrypt
local ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.setBackgrounds({"rbxassetid://7018713114","rbxassetid://950538356",})
Wydarzenia
odliczanieZaczęte
Występuje, gdy rozpoczyna się liczdownik. Ten wątek może być połączony tylko w LocalScript .
Lokalny Skrypt
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)
printoutZapisać
Wystąpi, gdy wydruk zostanie pokazany użytkownikowi. Ten wydarzenie może być połączony tylko w jednym LocalScript .
Lokalny Skrypt
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
pokaż
Wystąpi, gdy wydruk zostanie zamknięty i przycisk kamery zostanie ponownie pokazany. Ten wydarzenie może być połączony tylko w LocalScript .
Lokalny Skrypt
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)
Wezwania
ukryjInnyGuis
Ten zwrotny callback zostanie natychmiastowo wykonany przed wyświetleniem drukowania, pozwalając na wyłączenie całego ScreenGuis lub elementów w nim przed wyświetleniem drukowania. GUI używane przez fotobudkę mają atrybut ShowInPhotoBooth ustawiony na true . Patrz 1> GUI Visibility1> dla sz
pokażInnyGuis
Ten zwrotny callback zostanie wykonany po zamknięciu drukowania, umożliwiając ponowne włączenie całego ScreenGuis lub elementów w nim. GUI używane przez fotobudkę mają atrybut ShowInPhotoBooth ustawiony na true . Zobacz 1> Widoczność GUI1> dla szczegółów i kodu przykładow