MerchBoothの開発者モジュールにより、アバターアセット、パス、開発者製品を、バーチャル空間内で直接販売することができます。 プレイヤーは、自作のバーチャル空間から離れることなく、アイテムを閲覧したり、自分のアバター上のアセットをプレビューしたり、アイテムを購入したり、即座に使用また装備したりできます。 これにより、自作のバーチャル空間を収益化し、他のクリエーターのアイテム販売に関連する 40%のアフィリエイト手数料で収益を得られます。
モジュールの使用法
インストール
バーチャル空間内でMerchBoothモジュールを使用する方法
表示タブから、ツールボックスを開き、マーケットプレイスタブを選択します。
モデルのソートが選択されていることを確認し、カテゴリのすべてのボタンを表示をクリックします。
DEV モジュールタイルを見つけてクリックします。
Merch Boothモジュールを見つけてクリックするか、3D ビューにドラッグアンドドロップします。
エクスプローラウィンドウで、MerchBoothモデル全体をServerScriptServiceに移動します。 バーチャル空間を実行すると、モジュールはそれ自体をさまざまなサービスに配布し、実行を開始します。
設定
モジュールは、ほとんどのユースケースで動作するように事前設定されていますが、設定機能を使用して簡単カスタマイズできます。 例えば、より軽いテーマを作成し、カタログビューの左上エリアでデフォルトのフィルターボタンを無効にするには:
StarterPlayerScriptsで、新しいLocalScriptを作成してConfigureMerchBoothに名前を変更します。
以下のコードを新しいスクリプトに貼り付けます。
LocalScript - ConfigureMerchBoothlocal 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})
アイテムの追加
Merch のない Merch Booth とは何でしょう? 以下のセクションでは、アバターアセット、パス、および開発者製品を自分の Merch Booth に追加する方法の概要を説明します。
アバターアセット
衣装とアクセサリ などのアイテムは、 アバターショップのアイテム詳細ページにある アセット IDを使用して追加する必要があります。
ServerScriptService内にScriptを作成して、以下のコードに貼り付けます。
Script - Add Avatar Assetslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in ipairs(items) dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenprint(errorMessage)endendアバターショップウェブサイトの URL からアイテムのアセット ID をコピーします。 例えば、Roblox ベースボールキャップの ID は、607702162です。
コピーされた ID それぞれを、itemsテーブル内のカンマ区切りリストに貼り付けそして、Enum.InfoType.ProductをaddItemAsyncの第 2 パラメータとしてを含めて、アイテムが開発製品であることを示します。 デフォルトでは、アイテムはカタログビューにアルファベット順に表示されますが、setCatalogSortを使用してソートをカスタマイズできます。
Script - Add Avatar Assetslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {607702162, -- Roblox Baseball Cap4819740796, -- Robox1374269, -- Kitty Ears11884330, -- Nerd Glasses10476359, -- Paper Hat}for _, assetId in ipairs(items) dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenprint(errorMessage)endend
パス
パス の追加には、クリエーターダッシュボードに配置できるパス ID が必要です。
ServerScriptService内にScriptを作成して、以下のコードに貼り付けます。
Script - Add Passeslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in ipairs(items) dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenprint(errorMessage)endendクリエーターダッシュボードに移動し、バーチャル空間を選択します。
左側の列で、関連アイテムをクリックし、パスを選択します。
パスを右クリックし、アセット ID をコピーを選択します。
コピーされた ID それぞれを、itemsテーブル内のカンマ区切りリストに貼り付けそして、Enum.InfoType.GamePassをaddItemAsyncの第 2 パラメータとしてを含めて、アイテムがパスであることを示します。 デフォルトでは、アイテムはカタログビューにアルファベット順に表示れますが、ソートはsetCatalogSortでカスタマイズできます。
Script - Add Passeslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {4343758, -- ColdFyre Armor28521575, -- Slime Shield}for _, assetId in ipairs(items) dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)end)if not success thenprint(errorMessage)endend
開発者製品
開発者製品 の追加には、クリエーターダッシュボードに配置できる製品 ID が必要です。
ServerScriptService内にScriptを作成して、以下のコードに貼り付けます。
Script - Add Developer Productslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in ipairs(items) dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenprint(errorMessage)endendクリエーターダッシュボードに移動し、バーチャル空間を選択します。
左側の列で、関連アイテムをクリックし、**開発者製品(DEVELOPER PRODUCT)**を選択します。
パスを右クリックし、アセット ID をコピーを選択します。
コピーされた ID それぞれを、テーブル内のカンマ区切りリストに貼り付けそして、をaddItemAsyncの第 2 パラメータとしてを含めて、アイテムがパスであることを示します。 デフォルトでは、アイテムはカタログビューにアルファベット順に表示されますが、setCatalogSortを使用してソートをカスタマイズできます。
Script - Add Developer Productslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {1236602053, -- Mana Refill1257880672, -- Healing Potion}for _, assetId in ipairs(items) dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)end)if not success thenprint(errorMessage)endend
カスタムカタログボタン
デフォルトでは、右側のカタログボタンにより、ユーザーはいつでもブースを開くことができます。
場合によっては、このボタン削除して、自分のボタンを接続すると便利です:
ボタンとテキスト入力で概説されているように、新しいボタンを作成します。
ボタンオブジェクトの子としてLocalScriptを作成します。
以下のコードを新しいスクリプトに貼り付けます。
LocalScript - Custom Catalog Buttonlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))-- Remove the default catalog buttonMerchBooth.toggleCatalogButton(false)-- Connect the custom buttonscript.Parent.Activated:Connect(function()MerchBooth.openMerchBooth()end)
ショップ可能な地域
験内での購買を促進するのに役立つのが、ユーザーがエリアに入ったときに、自動的に Merch booth を表示する方法です。
ショップ可能な地域を作成するには:
検出領域を囲むAnchoredブロックを作成します。
表示タブからアクセスできるタグ編集機能を使用して、そのタグShopRegionをブロックに適用して、CollectionServiceがそれを検出するようにします。
パーツのCanCollideとCanQueryプロパティを無効にして、オブジェクトが物理的にそれと衝突しないようにし、また、レイキャストがそれを検出しないようにします。 また、そのTransparencyを最大値に設定して、バーチャル空間のユーザーからそれを非表示にします。
StarterPlayerScriptsの下に新しいLocalScriptを挿入します。
新しいスクリプトに、以下のコードを貼り付けます、これは、TouchedとTouchEndedイベントを使用してユーザーが領域に出入りするのを検出し、openMerchBoothとcloseMerchBoothを呼び出して、ブース GUI を開閉を行います。
LocalScriptlocal Players = game:GetService("Players")local ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))-- Remove the default catalog buttonMerchBooth.toggleCatalogButton(false)-- Iterate through all tagged partsfor _, region in ipairs(CollectionService:GetTagged("ShopRegion")) doregion.Touched:Connect(function(otherPart)local character = Players.LocalPlayer.Characterif character and character:FindFirstChild("HumanoidRootPart") == otherPart thenMerchBooth.openMerchBooth()endend)region.TouchEnded:Connect(function(otherPart)local character = Players.LocalPlayer.Characterif character and character:FindFirstChild("HumanoidRootPart") == otherPart thenMerchBooth.closeMerchBooth()endend)end
Proximity プロンプト
2D カタログビューの代替として、バーチャル空間内のオブジェクトに近接プロンプトを追加できます。 これにより、ユーザーは 3D 環境のアイテムを発見し、自分だけのアバターでそれらをプレビューし、購入し、即座に装備することができます。 詳細については、addProximityButtonを参照してください。
装備効果の変更
デフォルトでは、Merch Booth は、ユーザーがアイテムを装備すると、一般的なスパークルエフェクトを表示ます。 効果を変更するには、particleEmitterTemplateを設定コール内のParticleEmitterの自分のインスタンスに設定します。
LocalScript - ConfigureMerchBooth
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.SpheremyParticleEmitter.Transparency = NumberSequence.new(0, 1)myParticleEmitter.RotSpeed = NumberRange.new(200, 200)MerchBooth.configure({particleEmitterTemplate = myParticleEmitter})
GUI の可視性
デフォルトでは商品ブース(Merch Booth)は、Roblox に含まれているチャット、スコアボード、その他の UI が表示されたときに、すべてのCoreGuisとScreenGuisを非表示にします。 この動作を無効にしたい場合は、hideOtherUisを設定コール内のfalseに設定します。
LocalScript - ConfigureMerchBooth
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.configure({hideOtherUis = false})
キャラクターの動き
キャラクターが Merch Booth 内にある間に移動するのを防ぐのに有利です。 これは、disableCharacterMovementを設定コール内のtrueに設定することで行えます。
LocalScript - ConfigureMerchBooth
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.configure({disableCharacterMovement = true})
API リファレンス
種類
アイテム
Merch Booth のアイテムは、以下のキーと値のペア持つ辞書によって表されます。 アイテムは、getItems関数またはitemAdedイベントを介して収集できます。
キー | 型 | 概要 |
---|---|---|
assetId | 数字 | addItemAsyncにパスされたアイテムのカタログIDです。 |
title | 文字列 | カタログに表示されるアイテムタイルです。 |
price | 数字 | Robuxのアイテム価格です。 |
description | 文字列 | カタログに表示されているアイテムの詳細です。 |
assetType | 文字列 | アイテムのアクセサリタイプを表す文字列です。 |
isOwned | ブーリアン型 | 現在のユーザーがアイテムを所有しているかどうかです。 |
creatorName | 文字列 | カタログに表示されているアイテムクリエーターです。 |
creatorType | Enum.CreatorType | アイテムのクリエーターの種類です。 |
列挙型
MerchBooth.Controls
setControlKeyCodesと一緒に使用して、Merch Booth と対話するためのキーやゲームパッドボタンカスタマイズします。
名前 | まとめ |
---|---|
ProximityPrompts | Proximityプロンプトが設定されているときにアイテムビューを開くためのキーおよび/またはgamepadボタンです。 |
OpenMerchBooth | Merch Boothを開くためのキー/またはgamepadボタンです。 |
CloseMerchBooth | Merch Boothを閉じるためのKeyおよび/またはgamepadボタンです。 |
Filter | カタログビューの左上領域にあるデフォルトのフィルタープルダウンを使用するためのキーおよび/またはgamepadボタンです。 |
ViewItem | 特定のMerch Boothビューを開くためのキー/またはgamepadボタンです。 |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {keyboard = Enum.KeyCode.Q,gamepad = Enum.KeyCode.ButtonL1})
関数
設定
configure(config:table)
デフォルトのクライアント側の設定オプションを、テーconfigブル内にある以下のキー/値を使用して上書きします。 この関数は、LocalScriptからのみ呼び出すことができます。
Data
キー | 概要 | デフォルト |
---|---|---|
backgroundColor | ウィンドウのメイン背景色です(Color3)。 | [0, 0, 0] |
cornerRadius | メインウィンドウのコーナーの半径です(UDim)。 | (0, 16) |
cornerRadiusSmall | ウインドウ内の要素の半径です(UDim)。 | (0, 8) |
textFont | 価格、説明、その他一般情報などの「メインテキスト」のフォントです(Enum.Font)。 | Gotham |
textSize | メインテキストのサイズです。 | 13 |
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 | カタログビューの価格ボタンやTry Onボタンなど、小さなボタン用の背景色です(Color3)。 | [34, 34, 34] |
secondaryButtonTextColor | カタログビューの価格ボタンやTry Onボタンなど、小さなボタン用のテキストの色です(Color3)。 | [255, 255, 255] |
inactiveButtonColor | クリック不可の状態のすべてのボタン用の背景色です(Color3)。 | [153, 153, 158] |
inactiveButtonTextColor | クリック不可の状態のすべてのボタン用のテキストの色です(Color3)。 | [255, 255, 255] |
particleEmitterTemplate | equipに表示してプレイするオプションのカスタムParticleEmitterインスタンスです。 |
Proximity プロンプト
キー | 概要 | デフォルト |
---|---|---|
proximityButtonActivationDistance | プロンプトが表示されるまでに、プレイヤーのキャラクターがプロンプトの広告主から離れられる最大距離です。 | 10 |
proximityButtonExclusivity | 同時に表示できるプロンプトを指定するEnum.ProximityPromptExclusivityです。 | OnePerButton |
proximityButtonOffset | プロンプトのUIに適用されたピクセルオフセットです(Vector2)。 | (0, 0) |
proximityButtonPulseCount | 停止する前に、Proximityボタン周辺で発生する「パルス」の数です。 | 3 |
Data
キー | 概要 | デフォルト |
---|---|---|
useFilters | カタログに表示されているフィルターボタンをオン/オフにします。 | true |
disableCharacterMovement | trueの場合、Merch Boothが開いて間にキャラクターが移動するのを防ぎます。 | false |
hideOtherUis | trueの場合、Merch Boothは、UIが表示されたとき、すべてのScreenGuisとCoreGuisを非表示にします。 | true |
closeWhenFarFromPrompt | trueが andで、プレイヤーがProximityプロンプトでアイテムビューを開いた場合、プレイヤーがプロンプトオブジェクトからアクティベーション距離よりも遠くに移動すると、Merch Boothは自動的に閉じます。 | true |
LocalScript
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
addItemAsync(assetId:number, productType:Enum.InfoType, hideFromCatalog:boolean)
バーチャル空間で購入できるように、アイテムを Merch Booth に非同期的に追加します。 assetIdはアイテムのアセット ID、productTypeはアイテムのEnum.InfoType列挙、hideFromCatalogはカタログビューのアイテムを非表示にするために使用できます。
アセットとゲームパスまたは開発者製品の使用法がわずかに異なるため、詳細については、アイテムの追加を参照してください。
Script - Add Avatar Assets
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
607702162, -- Roblox Baseball Cap
4819740796, -- Robox
1374269, -- Kitty Ears
11884330, -- Nerd Glasses
10476359, -- Paper Hat
}
for _, assetId in ipairs(items) do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
print(errorMessage)
end
end
Script - Add Passes
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
4343758, -- ColdFyre Armor
28521575, -- Slime Shield
}
for _, assetId in ipairs(items) do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)
end)
if not success then
print(errorMessage)
end
end
Script - Add Developer Products
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
1236602053, -- Mana Refill
1257880672, -- Healing Potion
}
for _, assetId in ipairs(items) do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)
end)
if not success then
print(errorMessage)
end
end
getItems
getItems():table
現在登録されているすべてのアイテムを表す辞書を返します。 各キーは、文字列としてのアイテムのアセット ID であり、各キーの値はアイテムです。 この関数は、Scriptからのみ呼び出すことができます。
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
removeItem
removeItem(assetId:number)
addItemAsyncで以前に追加しアイテムを登録解除し、カタログビューのタイルとそれに割り当てられたProximity プロンプトを削除します。 この関数は、Scriptからのみ呼び出すことができます。
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- After some time, remove the item
task.wait(5)
MerchBooth.removeItem(4819740796)
end
addProximityButton
addProximityButton(adornee: BasePart|Model|Attachment, assetId: number)
Proximity プロンプトを指定さたadorneeに追加すると、そのアセット ID が指定された、アイテムの購入ビューの表示がトリガーされます。 これは、2D のカタログビューの代替として、ユーザーに 3D 環境でのアイテム発見を促すときに使用できます。
ProximityButton を割り当てる前に、addItemAsyncを介してアイテムが追加されていなくてはならないことに注意してください。 オブジェクトから Proximity プロンプトを削除するには、removeProximityButtonも参照してください。
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
end
removeProximityButton
removeProximityButton(adornee: BasePart|Model|Attachment)
addProximityButtonによって生成されたProximity プロンプトを削除します。 この関数は、Scriptからのみ呼び出すことができます。
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
-- After some time, remove the prompt
task.wait(5)
MerchBooth.removeProximityButton(item)
end
setCatalogSort
setCatalogSort(sortFunction:function):boolean
カタログビューで使用するソート関数sortFunctionを設定します。 提供されるソート関数は、、priceやtitleなどのアイテム情報に基づいたロジックを使用できます。 この関数は、LocalScriptからのみ呼び出すことができます。
カタログをソートするための例をいくつか示します:
Price Low-to-High
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("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:WaitForChild("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: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
setControlKeyCodes(control:MerchBooth.Controls,keyCodes:table)
Merch Booth との対話のためのキーとボタン値を設定します。 最初のパラメータは、MerchBooth.Controls列挙型で、2 番目のパラメータは、対応するEnum.KeyCode列挙型のキーkeyboardおよび/またはgamepadを含むテーブルでなければなりません。
Enum (control) | デフォルトのkeyCodesキー/値 |
---|---|
MerchBooth.Controls.ProximityPrompts | keyboard = Enum.KeyCode.E gamepad = Enum.KeyCode.ButtonY |
MerchBooth.Controls.OpenMerchBooth | gamepad = Enum.KeyCode.ButtonY |
MerchBooth.Controls.CloseMerchBooth | gamepad = Enum.KeyCode.ButtonB |
MerchBooth.Controls.Filter | gamepad = Enum.KeyCode.ButtonX |
MerchBooth.Controls.ViewItem | gamepad = Enum.KeyCode.ButtonA |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {keyboard = Enum.KeyCode.Q,gamepad = Enum.KeyCode.ButtonL1,})
openMerchBooth
openMerchBooth():
Merch Booth ウィンドウ(閉じている場合)を開き、カタログビューに移動します。 この関数は、LocalScriptからのみ呼び出すことができます。
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
print(errorMessage)
end
MerchBooth.openMerchBooth()
openItemView
openItemView(itemId:number)
指定されたitemIdのシングルアイテムビューに移動し、現在閉じて場合、Merch Booth ウィンドウを開きます。 この関数は、LocalScriptからのみ呼び出すことができます。
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
toggleCatalogButton
toggleCatalogButton(enabled:boolean)
画面の右側あるカタログボタンをオン/オフにします。 これは、カスタムボタンを実装したり、Merch Booth の外観を地域またはProximity プロンプトに制限したりするときに便利です。 LocalScriptからのみ呼び出すことができます。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.toggleCatalogButton(false)
isMerchBoothOpen
isMerchBoothOpen():Tuple
カタログまたはアイテムビューのいずれかが開いている場合、trueを返します。 アイテムビューが開いている場合、アイテムのアセット ID が 2 番目の値として返されます。 この関数は、LocalScriptからのみ呼び出すことができます。
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
closeMerchBooth
closeMerchBooth():
Merch Booth ウィンドウを閉じます。 この関数は、LocalScriptからのみ呼び出すことができます。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.closeMerchBooth()
isMerchBoothEnabled
isMerchBoothEnabled():boolean
この関数をsetEnabledとタンデムで使用して、Merch Booth が現在有効になっているかどうかを確認できます。 LocalScriptからのみ呼び出すことができます。
setEnabled
setEnabled(enabled:boolean)
Merch Booth 全体を有効/無効のいずれかに設定します。 無効にすると、この関数は、Proximity プロンプトを含む UI 全体を削除し、すべてのイベントを切り離します。 この関数は、LocalScriptからのみ呼び出すことができます。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local isEnabled = MerchBooth.isMerchBoothEnabled()if isEnabled thenMerchBooth.setEnabled(false)end
イベント
itemAdded
itemAdded(assetId:number,itemInfo:table):RBXScriptSignal
addItemAsyncでアイテムが追加されるときに発生します。 このイベントには、Script内でのみ接続できます。
Script
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)
itemRemoved
itemRemoved(assetId:number):RBXScriptSignal
removeItemでアイテムが削除されるときに発生します。 このイベントには、Script内でのみ接続できます。
パラメータ | |
---|---|
assetId:number | アイテムアセットIDです。 |
Script
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)
merchBoothOpened
merchBoothOpened():RBXScriptSignal
カタログまたはアイテム詳細ビューのいずれかが開かれているときに発生します。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothOpened:Connect(function()
print("Booth view opened")
end)
merchBoothClosed
merchBoothClosed():RBXScriptSignal
カタログまたはアイテム詳細ビューのいずれかが閉じられているときに発生します。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothClosed:Connect(function()
print("Booth view closed")
end)
catalogViewOpened
catalogViewOpened():RBXScriptSignal
カタログビューが開かれているときに発生します。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.catalogViewOpened:Connect(function()
print("Catalog view opened")
end)
catalogViewClosed
catalogViewClosed():RBXScriptSignal
カタログビューが閉じられているときに発生します。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.catalogViewClosed:Connect(function()
print("Catalog view closed")
end)
itemViewOpened
itemViewOpened():RBXScriptSignal
詳細ビューが開かれているときに発生します。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewOpened:Connect(function()
print("Item view opened")
end)
itemViewClosed
itemViewClosed():RBXScriptSignal
アイテム詳細ビューが閉じられているときに発生します。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewClosed:Connect(function()
print("Item view closed")
end)