商品展位

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

MerchBooth 開發者模組 讓你在自己的體驗中直接提供 虛擬物品通行證開發者產品 進行銷售。玩家可以瀏覽商品、在自己的虛擬角色上預覽物品、購買商品,並立即使用或裝備這些物品——所有這些都不需要離開你的體驗。這可以幫助你 獲得收入,並通過銷售其他創作者的物品獲得 40% 的聯盟費用。

模組使用

安裝

要在體驗中使用 MerchBooth 模組:

  1. 從 Studio 的 視窗 菜單或 首頁 標籤工具欄中,打開 工具箱,然後選擇 創作者商店 標籤。

  2. 確保選擇了 模型 排序,然後單擊 查看全部 按鈕以查看 類別

  3. 定位並單擊 包裝 磚塊。

  4. 找到 商品展位 模組並單擊它,或將它拖放到 3D 視圖中。

  5. 檢視器 窗口中,將整個 MerchBooth 模組移動到 ReplicatedStorage。運行體驗時,模組將開始運行。

配置

該模組預配置以支持大多數使用情況,但可以通過 configure 函數輕鬆自定義。例如,要創建更簡約的主題並禁用目錄視圖左上角的默認 過濾 按鈕:

  1. StarterPlayerScripts 中創建一個新的 LocalScript 並將其重命名為 配置商品展位

  2. 將以下代碼粘貼到新腳本中。

    LocalScript - ConfigureMerchBooth

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.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. ServerScriptService 中創建一個 Script 並將以下代碼粘貼到其中。

    Script - Add Avatar Assets

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.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. 從其 虛擬物品商店 網站 URL 中複製物品資產 ID。例如,Roblox 棒球帽 的 ID 是 607702162

  3. 將每個複製的 ID 粘貼到 items 表中的逗號分隔列表中。默認情況下,物品會按字母順序顯示在目錄視圖中,但你可以使用 setCatalogSort 進行排序自定義。

    Script - Add Avatar Assets

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    607702162, -- Roblox 棒球帽
    4819740796, -- Robox
    1374269, -- 小貓耳
    11884330, -- Nerd 眼鏡
    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. ServerScriptService 中創建一個 Script 並將以下代碼粘貼到其中。

    Script - Add Passes

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.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. 在左側列中,在 獲利化 下選擇 通行證

  4. 懸停在通行證縮略圖上,單擊 按鈕,然後從上下文菜單中選擇 複製資產 ID

  5. 將每個複製的 ID 粘貼到 items 表中的逗號分隔列表中 addItemAsync 的第二個參數中包含 Enum.InfoType.GamePass 以表示這些項目是通行證。默認情況下,物品按字母順序顯示在目錄視圖中,但可以通過 setCatalogSort 進行自定義排序。

    Script - Add Passes

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    4343758, -- ColdFyre Armor
    28521575, -- Slime Shield
    }
    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. ServerScriptService 中創建一個 Script 並將以下代碼粘貼到其中。

    Script - Add Developer Products

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.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. 在左側列中,在 獲利化 下選擇 開發者產品

  4. 懸停在產品的縮略圖上,單擊 按鈕,然後從上下文菜單中選擇 複製資產 ID

  5. 將每個複製的 ID 粘貼到 items 表中的逗號分隔列表中 addItemAsync 的第二個參數中包含 Enum.InfoType.Product 以表示這些項目是開發者產品。默認情況下,物品按字母順序顯示在目錄視圖中,但可以使用 setCatalogSort 進行自定義排序。

    Script - Add Developer Products

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    1236602053, -- Mana Refill
    1257880672, -- Healing Potion
    }
    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. 將以下代碼粘貼到新腳本中。

    LocalScript - Custom Catalog Button

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    -- 移除默認的目錄按鈕
    MerchBooth.toggleCatalogButton(false)
    -- 連接自定義按鈕
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

可購買區域

自動顯示商品展位的一個有效方法是當玩家進入某個區域時。

要創建可購買區域:

  1. 創建一個 Anchored 區塊來包圍偵測區域。確保這個區塊足夠高以碰撞到角色模型的 PrimaryPart(默認為 HumanoidRootPart)。

    用於檢測玩家接近商店櫃檯前面的區塊
  2. 使用該區塊屬性的 標籤 部分,將標籤 ShopRegion 應用於該區塊,以便 CollectionService 偵測到它。

  3. 將該部分的 Transparency 設置為最大值以隱藏它,並禁用其 CanCollideCanQuery 屬性,以防止物體與其物理碰撞,並且射線檢測時不會檢測到它。

  4. StarterPlayerScripts 下插入一個新的 LocalScript

  5. 在新腳本中,粘貼如下所示的代碼,該代碼使用 TouchedTouchEnded 事件檢測角色何時進入/離開該區域,並呼叫 openMerchBoothcloseMerchBooth 來打開/關閉展位的 GUI。

    LocalScript

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage.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 環境中發現物品,並在自己的虛擬角色上預覽它們、購買它們並立即裝備它們。詳細信息請參見 addProximityButton

更改裝備效果

默認情況下,商品展位在玩家從中裝備物品時顯示一種通用的閃光效果。要更改此效果,請在 configure 調用中將 particleEmitterTemplate 設置為自己的 ParticleEmitter 實例。

LocalScript - ConfigureMerchBooth

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.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
})

GUI 可見性

默認情況下,商品展位在其 UI 出現時隱藏所有 ScreenGuisCoreGuis,包括聊天、排行榜和 Roblox 包含的其他項目。如果你想禁用此行為,請在 configure 調用中將 hideOtherUis 設置為 false

LocalScript - ConfigureMerchBooth

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

角色移動

在玩家處於商品展位中時阻止角色移動可能是有益的。這可以通過在 configure 調用中將 disableCharacterMovement 設置為 true 來實現。

LocalScript - ConfigureMerchBooth

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

API 參考

類型

物品

商品展位中的物品用以下鍵值對表示的字典表示。可以通過 getItems 函數或 itemAdded 事件獲取物品。

類型描述
assetIdnumber物品的目錄 ID,如傳遞給 addItemAsync 一樣。
titlestring物品在目錄中顯示的標題。
pricenumber物品的價格(以 Robux 為單位)。
descriptionstring物品的描述,按目錄中的顯示方式。
assetTypestring表示物品配飾類型的字符串。
isOwnedbool當前玩家是否擁有該物品。
creatorNamestring目錄中顯示的物品創作者。
creatorTypeEnum.CreatorType物品的創作者類型。

列舉

MerchBooth.Controls

setControlKeyCodes 一起使用來自定義與商品展位交互的鍵和遊戲手柄按鈕。

名稱摘要
ProximityPrompts鍵和/或遊戲手柄按鈕,用於在配置接近提示時打開物品視圖。
OpenMerchBooth鍵和/或遊戲手柄按鈕,用於打開商品展位。
CloseMerchBooth鍵和/或遊戲手柄按鈕,用於關閉商品展位。
Filter鍵和/或遊戲手柄按鈕,用於使用目錄視圖左上角的默認 過濾 下拉選單。
ViewItem鍵和/或遊戲手柄按鈕,用於打開特定的商品展位物品視圖。
LocalScript

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

函數

configure

configure(config: table)

通過 config 表中的以下鍵/值覆蓋默認的客戶端配置選項。此函數只能從 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小型按鈕的背景顏色,例如目錄視圖中的價格按鈕或 試穿 按鈕(Color3)。[34, 34, 34]
secondaryButtonTextColor小型按鈕的文本顏色,例如目錄視圖中的價格按鈕或 試穿 按鈕(Color3)。[255, 255, 255]
inactiveButtonColor所有按鈕在不可點擊狀態下的背景顏色(Color3)。[153, 153, 158]
inactiveButtonTextColor所有按鈕在不可點擊狀態下的文本顏色(Color3)。[255, 255, 255]
particleEmitterTemplate在裝備時出現並播放的可選自定義 ParticleEmitter 實例。
LocalScript

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

addItemAsync

addItemAsync(assetId: number, productType: Enum.InfoType, hideFromCatalog: boolean)

異步添加商品到商品展位,使其適合在體驗中購買。assetId 是物品的資產 ID,productType 是物品的 Enum.InfoType 列舉,hideFromCatalog 可用於隱藏目錄視圖中的物品。

有關詳細信息,請參見 添加物品,因為 資產遊戲通行證開發者產品 的用法略有不同。

Script - Add Avatar Assets

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
607702162, -- Roblox 棒球帽
4819740796, -- Robox
1374269, -- 小貓耳
11884330, -- Nerd 眼鏡
10476359, -- 紙帽
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
end
Script - Add Passes

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
4343758, -- ColdFyre Armor
28521575, -- Slime Shield
}
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
Script - Add Developer Products

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
1236602053, -- Mana Refill
1257880672, -- Healing Potion
}
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

getItems

getItems(): table

返回一個字典,表示當前註冊的所有物品。每個鍵是物品的資產 ID 字符串,每個鍵的值是 Item。此函數只能從 Script 調用。

Script

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

removeItem

removeItem(assetId: number)

註銷先前通過 addItemAsync 添加的物品,移除其在目錄視圖中的區塊和任何分配給它的 接近提示。此函數只能從 Script 調用。

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- 過一些時間後,移除該物品
task.wait(5)
MerchBooth.removeItem(4819740796)
end

addProximityButton

addProximityButton(adornee: BasePart|Model|Attachment, assetId: number)

在給定的 adornee 上添加一個 接近提示,該提示將觸發顯示物品的購買視圖,根據其資產 ID。這可以作為 2D 目錄視圖的替代方案,鼓勵玩家在 3D 環境中發現物品。

請注意,必須通過 addItemAsync 先添加物品,才能將接近按鈕分配給它。另請參閱 removeProximityButton 以從對象中移除接近提示。

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local MerchBooth = require(ReplicatedStorage.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

removeProximityButton

removeProximityButton(adornee: BasePart|Model|Attachment)

移除通過 addProximityButton 生成的 接近提示。此函數只能從 Script 調用。

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local MerchBooth = require(ReplicatedStorage.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

setCatalogSort(sortFunction: function): boolean

將排序函數 sortFunction 設置為在目錄視圖中使用。提供的排序函數可以使用基於 Item 信息的邏輯,如 pricetitle。此函數只能從 LocalScript 調用。

以下是一些對目錄進行排序的示例:

Price Low-to-High

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
Price High-to-Low

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
Price Low-to-High & Alphabetical

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

setControlKeyCodes

setControlKeyCodes(control: MerchBooth.Controls, keyCodes: table)

配置與商品展位交互的鍵和按鈕值。第一個參數必須是一個 MerchBooth.Controls 列舉,第二個參數是一個表,包含鍵 keyboard 和/或 gamepad 及相應的 Enum.KeyCode 列舉。

列舉 (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
LocalScript

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

openMerchBooth

openMerchBooth()

打開商品展位窗口(如果關閉)並導航到目錄視圖。此函數只能從 LocalScript 調用。

LocalScript

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

openItemView

openItemView(itemId: number)

導航到給定 itemId 的單個物品視圖,如果它當前關閉,則打開商品展位窗口。此函數只能從 LocalScript 調用。

LocalScript

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

toggleCatalogButton

toggleCatalogButton(enabled: boolean)

開關右側屏幕上的目錄按鈕。這在實施 自定義按鈕 或限製商品展位出現於 區域接近提示 時非常有用。只能從 LocalScript 調用。

LocalScript

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

isMerchBoothOpen

isMerchBoothOpen(): Tuple

如果目錄或物品視圖處於打開狀態,則返回 true。如果物品視圖開啟,則第二個值返回物品的資產 ID。此函數只能從 LocalScript 調用。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.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

closeMerchBooth

closeMerchBooth()

關閉商品展位窗口。此函數只能從 LocalScript 調用。

LocalScript

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

isMerchBoothEnabled

isMerchBoothEnabled(): boolean

該函數可與 setEnabled 一起使用,以檢查商品展位當前是否啟用。只能從 LocalScript 調用。

setEnabled

setEnabled(enabled: boolean)

設置整個商品展位是否啟用。當禁用時,該函數將刪除整個 UI,包括 接近提示,並斷開所有 事件。此函數只能從 LocalScript 調用。

LocalScript

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

事件

itemAdded

當通過 addItemAsync 添加物品時觸發。該事件只能在 Script 中連接。

參數
assetId: number物品資產 ID。
itemInfo: table字典,包括 Item 信息,如 pricetitle
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemAdded:Connect(function(assetId, itemInfo)
print("物品添加,資產 ID 為", assetId)
print(itemInfo)
end)

itemRemoved

當通過 removeItem 移除物品時觸發。該事件只能在 Script 中連接。

參數
assetId: number物品資產 ID。
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemRemoved:Connect(function(assetId)
print("物品移除,資產 ID 為", assetId)
end)

merchBoothOpened

當目錄 物品詳細視圖打開時觸發。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothOpened:Connect(function()
print("展位視圖已開啟")
end)

merchBoothClosed

當目錄 物品詳細視圖關閉時觸發。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothClosed:Connect(function()
print("展位視圖已關閉")
end)

catalogViewOpened

當目錄視圖打開時觸發。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewOpened:Connect(function()
print("目錄視圖已開啟")
end)

catalogViewClosed

當目錄視圖關閉時觸發。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewClosed:Connect(function()
print("目錄視圖已關閉")
end)

itemViewOpened

當物品詳細視圖被打開時觸發。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewOpened:Connect(function()
print("物品視圖已開啟")
end)

itemViewClosed

當物品詳細視圖關閉時觸發。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewClosed:Connect(function()
print("物品視圖已關閉")
end)
©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。