照片展位

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

拍照是一种完美的纪念方式。 照片展位 开发者模块 是一个易于使用的照片摆设工具,可以让玩家使用背景代表其体验的独特姿势。

模块使用

安装

要在体验中使用 照片展位 模块:

  1. 视图选项卡打开工具箱并选择 创建者商店 选项卡。

    Toolbox toggle button in Studio
  2. 确保 模型排序 已选择,然后单击 查看所有 按钮为 类别

  3. 找到并单击 开发者模块 地瓦片。

  4. 找到 照片展位 模块,然后单击它,或者将其拖放到 3D 视查看中。

  5. Explorer 窗口中,将整个 照片展位 模型移入 服务器脚本服务 。 在运行体验时,模块将分配到各个服务并开始运行。

位置 Booth

模块包含一个 照片展位 模型,您可以将其放置在 3D 世界中。这个模型是玩家与设置照片的人交互的。

  1. 找到模块主文件夹的 照片摊位 网格。

  2. 将其移动到顶级 工作区 层级,并将其放置在您想要的位置。

配置

模块预配置为大多数使用场景,但它可以通过配置函数轻松自定义。例如,要改变照片底部的默认消息:

  1. StarterPlayerScripts 中,创建一个新的 LocalScript 并将其重命名为 配置照明亭

  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)

图形用户界面可见度

默认情况下,照片展位会隐藏所有 ScreenGuisCoreGuis 当照片被展示时。如果您想覆盖此自动隐藏行为并程序决定哪些图形用户界面应该显示,请包含 hideOtherGuis 和 2> showOtherGuis2> 回调

本地脚本

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()
-- 隐藏除了标有属性的屏幕以外的所有开发者定义的屏幕 GUIs
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()
-- 显示所有隐藏的开发者屏幕 GUI
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- 显示隐藏的核心 GUI
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)

调用

隐藏其他图形用户界面

隐藏其他 GUI (回调: function )

此回调在打印机显示之前立即运行,让您在打印机显示之前禁用整个 ScreenGuis 或元素内的所有元素。 照片摊位使用的图形用户界面具有 显示在照片摊位 的属性。 请参阅 GUI 可见性 获取详细信息和示例验证码。

显示其他图形用户界面

显示其他 GUI (回调: function )

此回调在打印结束后执行,让您重新启用整个 ScreenGuis 或元素内的所有元素。 照片摊位使用的图形用户界面具有 显示在照片摊位 的属性。 请参阅 GUI 可见性 获取细节和示例验证码。