商品展示台

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

商店 开发者模块 允许您提供头像资产,1>通行证1>和4>开发者产品4> 直接在您的体验中出售。玩家可以浏览项目、预览其自己的虚拟形

模块使用

安装

要在体验中使用 商店展台 模块:

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

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

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

  4. 找到 服装展位 模块,然后单击它,或者拖动到3D视查看中。

  5. Explorer 窗口中,将整个 MerchBooth 模型移动到 ServerScriptService 中。 在运行体验时,模块将分配到各个服务并开始运行。

配置

模块预配置为大多数使用场景,但它可以通过 配置 函数轻松自定义。例如,创建一个更轻的主题并禁用左上角目录视查看中的默认 过滤器 按钮:

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

  2. 将以下代码粘贴到新脚本中。

    本地脚本 - 配置商店

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    MerchBooth.configure({
    backgroundColor = Color3.fromRGB(220, 210, 200),
    textSize = 17,
    textFont = Enum.Font.Fondamento,
    textColor = Color3.fromRGB(20, 20, 20),
    useFilters = false
    })

添加物品

没有商品的商店是什么?下面的部分描述了如何添加头像资产通行证开发者产品到您的商店。

虚拟形象资产

服装和配件等项目必须通过其资产 ID位于物品的详细页面在虚拟形象商店中添加。

  1. Script 中创建一个 Class.Script 并在下面的代验证码中粘贴。

    脚本 - 添加虚拟形象资产

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end
  2. 从他们的 虚拟形象商店 网站上复制资产 ID。例如,Roblox 棒球帽 的 ID 是 607702162

  3. 将每个复制的ID粘贴到items表内的空格列表中。默认情况下,项目在目录视图中按字母顺序显示,但您可以使用设置目录排序自定义排序。

    脚本 - 添加虚拟形象资产

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    607702162, -- 罗布乐思棒球帽
    4819740796, -- Robox
    1374269, -- 猫耳
    11884330, -- 书呆子眼镜
    10476359, -- 纸帽
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end

通行证

添加通行证需要通行证ID,可以在创建者仪表板中找到。

  1. Script 中创建一个 Class.Script 并在下面的代验证码中粘贴。

    脚本 - 添加通行证

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end
  2. 导航到创建者仪表板并选择体验。

  3. 在左列中, under 货币化 , 选择 通行证 .

  4. 点击 按钮 for a pass and select 复制资产ID

  5. 将每个复制的 ID 粘贴到 items 表内的空格键列表中 包括 Enum.InfoType.GamePass 作为第二个参数,表示物品是通行证。 默认情况下,项目将在目录视图中按字母顺序显示,但排序可以通过 1>

    脚本 - 添加通行证

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    4343758, -- 冷火焰盔甲
    28521575, -- 史莱姆盾牌
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)
    end)
    if not success then
    warn(errorMessage)
    end
    end

开发者商品

添加开发者产品 需要位于创建者仪表板中的产品ID。

  1. Script 中创建一个 Class.Script 并在下面的代验证码中粘贴。

    脚本 - 添加开发者产品

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end
  2. 导航到创建者仪表板并选择体验。

  3. 在左列中, under 货币化 , 选择 开发者产品 .

  4. 点击 按钮为产品,然后选择 复制资产ID

  5. 将每个复制的 ID 粘贴到 items 表内的空格键列表中 包括 Enum.InfoType.Product 作为第二个参数,表示该项目是开发者产品。 默认情况下,项目会在目录视图按字母顺序显示,但您可以使用 1> 设

    脚本 - 添加开发者产品

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    1236602053, -- 魔法药水补充
    1257880672, -- 治疗药水
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)
    end)
    if not success then
    warn(errorMessage)
    end
    end

自定义目录按钮

默认情况下,右侧 目录按钮 可以让玩家随时打开展台。

在某些情况下,可能有用 移除 此按钮并连接您拥有:

  1. 按照 按钮 中的说明创建一个新按钮。

  2. 创建一个 LocalScript 作为按钮对象的子。

  3. 将以下代码粘贴到新脚本中。

    本地脚本 - 自定义目录按钮

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- 移除默认目录按钮
    MerchBooth.toggleCatalogButton(false)
    -- 连接自定义按钮
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

可购买地区

驾驶购买体验的有用方法是自动显示商店摊位,当玩家进入区域。

要创建可购买区域:

  1. 创建一个 Anchored 块,覆盖检测区域。请确保该方块足够高, чтобы与角色模型的 PrimaryPart 部分(默认为 HumanoidRootPart )进行碰撞。

    检查玩家是否靠近商店柜台前方,以便检测当玩家靠近时是否有可能发生交叉点
  2. 使用标签部分砖块的属性,或 Studio 的标签编辑器,将标签ShopRegion应用到块上,便可让1> Class.CollectionService1> 检测到。

  3. 将零件的 Transparency 设置为最大,以便在体验中隐藏它对玩家。也禁用其 CanCollideCanQuery 属性,以便对对象不起物理碰撞并且射线投射不会检测到它。

  4. LocalScript 下插入一个新的 Class.LocalScript。

  5. 在新脚本中,将以下代码粘贴使用 TouchedTouchEnded 事件来检测当角色进入/离开区域时是否调用 openMerchBooth 和 1> closeMerchBooth1> 来打开/关闭展台 GUI。

    本地脚本

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- 移除默认目录按钮
    MerchBooth.toggleCatalogButton(false)
    local function setupRegion(region: BasePart)
    region.Touched:Connect(function(otherPart)
    local character = Players.LocalPlayer.Character
    if character and otherPart == character.PrimaryPart then
    MerchBooth.openMerchBooth()
    end
    end)
    region.TouchEnded:Connect(function(otherPart)
    local character = Players.LocalPlayer.Character
    if character and otherPart == character.PrimaryPart then
    MerchBooth.closeMerchBooth()
    end
    end)
    end
    -- 遍历现有标记商店区域
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- 检测非流量商店区域是否流量
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

邻近提示

作为 2D 目录查看图的替代,您可以在体验对象上添加 靠近提示。这使玩家在 3D 环境中发现物品,预览他们在自己的虚拟形象上,购买它们,并立即装备它们。请参阅 添加靠近按钮 获取详细信息。

改变装备效果

默认情况下,商店展示一个通用闪光效果,当玩家装备一个物品从它。要改变效果,请将 particleEmitterTemplate 设置为您自己的 ParticleEmitter 在 配置 调用中。

本地脚本 - 配置商店

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local myParticleEmitter = Instance.new("ParticleEmitter")
myParticleEmitter.SpreadAngle = Vector2.new(22, 22)
myParticleEmitter.Lifetime = NumberRange.new(0.5, 1.5)
myParticleEmitter.Shape = Enum.ParticleEmitterShape.Sphere
myParticleEmitter.Transparency = NumberSequence.new(0, 1)
myParticleEmitter.RotSpeed = NumberRange.new(200, 200)
MerchBooth.configure({
particleEmitterTemplate = myParticleEmitter
})

图形用户界面可见度

默认情况下,商店展示会隐藏 ScreenGuisCoreGuis 当其 UI 出现时,包括聊天、排行榜和其他由 Roblox 包含的内容。如果您想要禁用此行为,请在 hideOtherUis 中将 2>hideOtherUis2>

本地脚本 - 配置商店

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.configure({
hideOtherUis = false
})

角色移动

防止角色在商店中移动是有优势的,因为它可以在角色在商店中时设置 disableCharacterMovementtrue 在配置 调用 中设置。

本地脚本 - 配置商店

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.configure({
disableCharacterMovement = true
})

API 引用

类型

物品

商店中的物品由字典表示,其中键值对象是以下。物品可以通过获取物品函数或itemAdded事件收集。

钥匙类型描述
assetId该物品目的目录ID,作为传递到 添加项目异步
title字符串目录中出现的物品标题。
priceRobux 中的物品价格。
description字符串目录中出现的物品描述。
assetType字符串表示物品配件类输入的字符串。
isOwnedboolean当前玩家是否拥有物品。
creatorName字符串该目录中所示的物品创建器。
creatorTypeEnum.CreatorType创建者类型为该项物品。

枚数

商店展台控制

setControlKeyCodes 用于自定义钥匙和游戏手柄按钮以交互商店摊位。

名称概要
ProximityPrompts键和/或游戏手柄按钮,配置了邻近提示后,开启物品视图。
OpenMerchBooth键和/或游戏手柄按钮来打开商品摊位。
CloseMerchBooth键和/或游戏手柄按钮来关闭商品摊位。
Filter键和/或游戏手柄按钮以使用上下文目录查看图的默认 过滤器 弹下。
ViewItem键和/或游戏手柄按钮以打开特定的商品展示会项目视查看。
本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1
})

函数

配置

配置(配置: table )

通过 config 表中的以下键值/值来覆盖客户端端口配置选项。LocalScript 表中的此功能仅从 Class.LocalScript 中调用。

钥匙描述默认
backgroundColor窗口的主要背景颜色(Color3).[0, 0, 0]
cornerRadius主窗口的角度 ( UDim )。(0, 16)
cornerRadiusSmall窗口内元素的角度 ( UDim )。(0、8)
textFont价格、描述和其他一般信息(Enum.Font)的主要文字字体。Gotham
textSize主文本的大小。14
textColor主要文本的颜色( Color3 )。[255, 255, 255]
secondaryTextColor用于某些主要文本变体的颜色( Color3 )。[153, 153, 158]
headerFont用于窗口标题的字体(Enum.Font)。GothamMedium
headerTextSize用于窗口标题的头衔文本大小。18
titleFont用于项目详情页上项目名称的字体(Enum.Font)。GothamBold
titleTextSize用于项目详情页上的物品名称的标题文本的大小。28
buttonColor在可点击状态下的大按钮的背景颜色,例如在物品视图中的主要购买按钮(Color3)。[255, 255, 255]
buttonTextColor在可点击状态下,用于主要购买按钮的文本颜色,例如在物品视图中的主要购买按钮(Color3)。[0, 0, 0]
secondaryButtonColor用于价格按钮在目录视图或试用按钮( Datatype.Color3 )的背景颜色。[34, 34, 34]
secondaryButtonTextColor用于价格按钮在目录视图或“ 试用 ”按钮(Color3)的文本颜色。[255, 255, 255]
inactiveButtonColor在不可点击状态下的背景颜色(Color3 )。[153, 153, 158]
inactiveButtonTextColor在不可点击状态下所有按钮的文本颜色 ( Color3 )。[255, 255, 255]
particleEmitterTemplate可选的自定义 ParticleEmitter 实例,在装备上出现并播放。
本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.configure({
backgroundColor = Color3.fromRGB(255, 255, 255),
textSize = 16,
textFont = Enum.Font.Roboto,
textColor = Color3.fromRGB(20, 20, 20),
hideOtherUis = false,
})

添加事件异步

addItemAsync(assetId: number,产品类型:Enum.InfoType,隐藏从目录:boolean )

Asynchronously 添加一个项目到商店,因此它可以在体验中购买。 assetId 是物品目的资产 ID,productType 是物品目的 Enum.InfoType 枚枚,并且 1> hideFromCatalog1> 可以用于隐藏项目在目录查看图中。

有关细节,请参阅添加物品资产游戏通行证 或1>开发者产品1>之间的使用情况略有不同。

脚本 - 添加虚拟形象资产

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
607702162, -- 罗布乐思棒球帽
4819740796, -- Robox
1374269, -- 猫耳
11884330, -- 书呆子眼镜
10476359, -- 纸帽
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
end
脚本 - 添加通行证

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
4343758, -- 冷火焰盔甲
28521575, -- 史莱姆盾牌
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)
end)
if not success then
warn(errorMessage)
end
end
脚本 - 添加开发者产品

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
1236602053, -- 魔法药水补充
1257880672, -- 治疗药水
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)
end)
if not success then
warn(errorMessage)
end
end

获取物品

获取物品: table

返回一个代表所有已注册物品的字典。每个钥匙都是一个物品的资产ID作为字符串,每个键的值都是一个物品。此函数只能从Script中调用。

脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
local items = MerchBooth.getItems()
print(items)
end

移除物品

移除物品(assetId: number )

使用 addItemAsync 来添加以前添加到物品上,并且在目录视图中移除其地砖在其上。此函数只能从 Class.Script 中调用。

脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- 一段时间后,移除项物品
task.wait(5)
MerchBooth.removeItem(4819740796)
end

添加邻近按钮

addProximityButton(adornee: BasePart | Model | Attachment , assetId: 1> number1>)

添加一个 邻近提示 在给定的 adornee 上,该提示会触发显示购买视查看的物品的显示,根据其资产 ID 。 这可以作为 2D 目录视查看的替代,鼓励玩家在 3D 环境中发现物品。

注意,必须先通过 添加物品异步 将一个物品添加到指定的按钮。请参阅 移除邻近按钮 以从对象中移除邻近提示。

脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
local item = workspace:FindFirstChild("Robox")
if item then
MerchBooth.addProximityButton(item, 4819740796)
end
end

移除邻近按钮

移除邻近按钮(adornee: BasePart | Model | Attachment )

移除一个 邻近提示 通过 添加邻近按钮 生成。 此函数只能从 Script 中调用。

脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
local item = workspace:FindFirstChild("Robox")
if item then
MerchBooth.addProximityButton(item, 4819740796)
end
-- 一段时间后,移除提示
task.wait(5)
MerchBooth.removeProximityButton(item)
end

设置目录排序

setCatalogSort(sortFunction: function>): boolean

将排序功能sortFunction设置为在目录视查看中使用。 提供的排序功能可以基于物品 信息,例如price 或2> title2>。 此功能只能从5> Class.LocalScript5> 中调用。

这里有一些例子来排序目录:

价格从低到高

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
价格 高到低

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
价格从低到高 & 按字母顺序

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return if a.price == b.price then a.title < b.title else a.price < b.price
end)

设置控制键代码

setControlKeyCodes(控制: MerchBooth.Controls , 钥匙代码: table )

配置商品展示台与交互的钥匙和按钮值。第一个参数必须为 MerchBooth.Controls 枚,第二个参数必须是包含钥匙的 keyboard 和/或 gamepad 的相应 1> Enum.KeyCode1> 枚。

列表(control )默认 keyCodes 钥匙/值
MerchBooth.Controls.ProximityPromptskeyboard = Enum.KeyCode.E gamepad = Enum.KeyCode.ButtonY
MerchBooth.Controls.OpenMerchBoothgamepad = Enum.KeyCode.ButtonY
MerchBooth.Controls.CloseMerchBoothgamepad = Enum.KeyCode.ButtonB
MerchBooth.Controls.Filtergamepad = Enum.KeyCode.ButtonX
MerchBooth.Controls.ViewItemgamepad = Enum.KeyCode.ButtonA
本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1,
})

打开商店

打开商店摊位()

打开商店展示窗口(如果已关闭),然后导航到目录视查看。此功能只能从 LocalScript 调用。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
MerchBooth.openMerchBooth()

打开项目视图

打开物品视图(itemId: number )

导航到给定的 itemId 单项视图,如果商店已关闭,打开商店窗口。 此功能只能从 LocalScript 中调用。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
MerchBooth.openItemView(4819740796)
end

切换目录按钮

切换目录按钮(启用: boolean )

切换屏幕右侧的目录按钮。 此用于实现<a href="/reference/engine/databases">个自定义按钮</a>或限制商店摊位的显示到<a href=\"prompts/regions/proximity-prompts\">区域</a>或<a href=\"prompts/proximity-prompts\">提示</a>。 只能从<a href=\"Class.LocalScript\">Class.LocalScript</a>中调用。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.toggleCatalogButton(false)

是否打开商店

是否打开商店:Tuple

返回 true 如果目录或物品视图打开。如果物品视图打开,返回物品的资产ID作为第二个值。此函数只能从 LocalScript 中调用。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
MerchBooth.openItemView(4819740796)
local isOpen, itemId = MerchBooth.isMerchBoothOpen()
print(isOpen, itemId)
end

关闭商店

关闭展台(卖货)

关闭商店展示窗口。 此功能只能从 LocalScript 调用。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.closeMerchBooth()

已启用商店摊位

是否启用商店摊位: boolean

此函数可以与 setEnabled 用于检查商店摊位是否已启用或不启用。只能从 LocalScript 中调用。

设置启用

setEnabled(启用: boolean )

设置是否启用整个商店摊位。禁用时,此功能将整个 UI 删除,包括 邻近提示 和所有 事件 。此功能只能从 LocalScript 中调用。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local isEnabled = MerchBooth.isMerchBoothEnabled()
if isEnabled then
MerchBooth.setEnabled(false)
end

事件

已添加物品

添加物品时发生错误。当发生错误时,这个事件只能在 Class.Script 中连接。

参数
资产ID: number项目资产 ID。
项目信息: table用于存储物品的信息,例如pricetitle
脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemAdded:Connect(function(assetId, itemInfo)
print("Item added with asset ID of", assetId)
print(itemInfo)
end)

已移除物品

通过 移除物品 删除时发生。此事件只能在 Script 中连接。

参数
资产ID: number项目资产 ID。
脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemRemoved:Connect(function(assetId)
print("Item removed with asset ID of", assetId)
end)

打开商店

目录物品详情视图打开时。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothOpened:Connect(function()
print("Booth view opened")
end)

商店关闭

当目录 项目详情视图关闭时触发。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothClosed:Connect(function()
print("Booth view closed")
end)

目录查看已打开

目录视图打开时触发。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.catalogViewOpened:Connect(function()
print("Catalog view opened")
end)

目录关闭

当目录视图关闭时,发射。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.catalogViewClosed:Connect(function()
print("Catalog view closed")
end)

项目视图打开

打开项目详情视图时触发。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewOpened:Connect(function()
print("Item view opened")
end)

项目视图关闭

关闭项目详情视图时触发。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewClosed:Connect(function()
print("Item view closed")
end)