拍照是一種完美的紀念方式。 攝影攤位 開發模組 是一種簡單易用的照片擺設工具,可以讓玩家以代表他們體驗的背景擺設一個獨特的姿勢。
模組使用
安裝
要在體驗中使用 攝影攤位 模組:
確認 模型排序 已選擇,然後按一下 查看全部 按鈕 for 類別 。
找到並點擊 Dev Modules 磚塊。
找到 攝影攤位 模組並點擊它,或將它拖曳到 3D 檢視窗中。
在 探險家 窗口中,將整個 攝影攤位 模型移動到 ServerScriptService 中。執行體驗時,模組將分配到各個服務並開始執行。
正在位置設置攤位
模組包含一個 攝影攤位 模型,您可以將它放置在 3D 世界中。這個模型是玩家設置相片的方式。
找到模組主頁面的 攝影攤位 網格。
將它移動到 工作區 的頂層,並將其放置在所需位置。
設定
模組預設為大多數使用案例,但可以通過 設定 功能來容易自訂。例如,要變更照片底部的預設訊息:
在 StarterPlayerScripts 中,創建新 LocalScript 並將其重命名為 ConfigurePhotoBooth 。
將以下代碼貼入新的指令碼。
本地指令碼 - 設定攝影攤local ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.configure({frameMessage = "First Photo Booth Capture!",})
連接到事件
每次攝影攤顯示新屏幕給本地客戶時,將會發生相應的事件。這些事件可以連接在 LocalScript 中,讓您可以使用自己的自訂規則來回應。
本地指令碼
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 可視性
默認情況下,照片攤位會隱藏所有 ScreenGuis 和 CoreGuis 當照片發生時,當你想要覆蓋此自動隱藏行為並程式化決定哪些GUI會顯示時,包括 隱藏其他攤位 和
本地指令碼
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 = {}
-- 創建一個不會隱藏的屏幕 GUI
local specialGuiInstance = Instance.new("ScreenGui")
-- 在照片攤位 GUI 上方的螢幕GUI
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- 設定屏幕 GUI 的屬性來防止隱藏
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- 將文字標籤添加到 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()
-- 隱藏所有由開發者設定的屏幕按鈕,除非有屬性
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
-- 隱藏特定核心使用者介面
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- 顯示所有隱藏的開發者螢幕按鈕
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- 顯示隱藏的核心使用者介面
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)
API 參考
功能
設定
在 config 表中,通過以下鍵值/值來偽裝預設設定選項。此功能只能從 LocalScript 中呼叫。
鑰匙 | 說明 | 預設 |
---|---|---|
frameMessage | 在照片底部顯示的訊息。它的持續時間可以通過 fadeUiDelay 屬性來控制。 | 「使用您的設備截取屏幕截圖並分享!」 |
fadeUiDelay | 在它褪色前顯示框架訊息,在秒鐘。設為正負數字,以永遠褪色。 | 3 |
closeButtonImage | 可用於關閉相機按鈕,位於 closeButtonBackgroundImage 圖像上。 | 「rbxassetid://7027440823」 |
closeButtonBackgroundImage | 用於關閉相機按鈕的背景圖像。 | 「rbxassetid://7027440891」 |
cameraLandscapePosition | 距離照片攤位的相攝影機,在角色前方和上方 (Vector2) 。 | (5、2) |
cameraPortraitPosition | 距離照片攤位的相攝影機,在角色前方和上方,在拍照模式中(Vector2)。 | (10、1) |
countdownFont | 用於倒數中的數字(Enum.Font). | GothamBlack |
countdownTextColor | 倒數計時器中的數字顏色(Color3). | [255, 255, 255] |
printoutCharacterPosition | 當打印結果顯示時,位置顯示在屏幕上 (UDim2)。 | (0.5、0、0.5、0) |
printoutCharacterSize | 角色在打印出力( UDim2 )中佔用的屏幕空間。 | (1、0、1、0) |
characterAnimation | 資產 ID 的動畫,在啟動時間的暫停框架上取得。 | 「rbxassetid://6899663224」 |
filterImage | 將圖像應用在照片上作為過篩選器。如果 nil ,將使用黑暗圖像邊緣的預設過濾器。 | nil |
本地指令碼 - 設定攝影攤
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),})
設定背景
照片攤位提供的預設背景擺脫了預設背景的限制。背景圖像應該是 16:9 比例(1024×768)的,以獲得最佳體驗,並且資產 ID 應該包含在背景陣列中。 1–4 (包括)背景可以提供。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))PhotoBooth.setBackgrounds({"rbxassetid://7018713114","rbxassetid://950538356",})
事件
倒數已開始
開始倒計時時發生。此事件只能在 LocalScript 中連接。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)
列印顯示
當輸出顯示給使用者時發生。這個事件只能連接在 LocalScript 中。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
提示顯示
當發射器關閉時,顯示相機按鈕再次顯示。此事件只能在 LocalScript 中連接。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)
回調
隱藏其他導覽
此回潮會在打印時立即執行,讓您在打印時顯示前禁用整個 ScreenGuis 或元素內的元素。照片攤位使用的GUI有 ShowInPhotoBooth 屬性設置為 true 。參閱 1>攤位 GUI 可用性1> 了解詳情和示例代碼。
顯示其他GUI
此回調在打印結束後執行,讓您可以重新啟用整個 ScreenGuis 或元素內的元素。 照片攤位使用的GUI有 顯示在照片攤位 的屬性設定為 true 。 請參閱 1>攤位可視性1> 了解詳情和示例代碼。