攝影攤位

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

拍照是一種完美的紀念方式。 攝影攤位 開發模組 是一種簡單易用的照片擺設工具,可以讓玩家以代表他們體驗的背景擺設一個獨特的姿勢。

模組使用

安裝

要在體驗中使用 攝影攤位 模組:

  1. 檢視 標籤開啟 工具箱 並選擇 創作者商店 標籤。

    Toolbox toggle button in Studio
  2. 確認 模型排序 已選擇,然後按一下 查看全部 按鈕 for 類別

  3. 找到並點擊 Dev Modules 磚塊。

  4. 找到 攝影攤位 模組並點擊它,或將它拖曳到 3D 檢視窗中。

  5. 探險家 窗口中,將整個 攝影攤位 模型移動到 ServerScriptService 中。執行體驗時,模組將分配到各個服務並開始執行。

正在位置設置攤位

模組包含一個 攝影攤位 模型,您可以將它放置在 3D 世界中。這個模型是玩家設置相片的方式。

  1. 找到模組主頁面的 攝影攤位 網格。

  2. 將它移動到 工作區 的頂層,並將其放置在所需位置。

設定

模組預設為大多數使用案例,但可以通過 設定 功能來容易自訂。例如,要變更照片底部的預設訊息:

  1. StarterPlayerScripts 中,創建新 LocalScript 並將其重命名為 ConfigurePhotoBooth

  2. 將以下代碼貼入新的指令碼。

    本地指令碼 - 設定攝影攤

    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 可視性

默認情況下,照片攤位會隱藏所有 ScreenGuisCoreGuis 當照片發生時,當你想要覆蓋此自動隱藏行為並程式化決定哪些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 參考

功能

設定

設定(配置: table )

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),
})

設定背景

設定背景(背景:table)

照片攤位提供的預設背景擺脫了預設背景的限制。背景圖像應該是 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)

回調

隱藏其他導覽

hideOtherGuis(回歸函數: function )

此回潮會在打印時立即執行,讓您在打印時顯示前禁用整個 ScreenGuis 或元素內的元素。照片攤位使用的GUI有 ShowInPhotoBooth 屬性設置為 true 。參閱 1>攤位 GUI 可用性1> 了解詳情和示例代碼。

顯示其他GUI

顯示其他 Guis (回調: function )

此回調在打印結束後執行,讓您可以重新啟用整個 ScreenGuis 或元素內的元素。 照片攤位使用的GUI有 顯示在照片攤位 的屬性設定為 true 。 請參閱 1>攤位可視性1> 了解詳情和示例代碼。