The MerchBooth 개발자 모듈 lets you offer 아바타 자산, 패스, 및 개발자 제품 직접 경험 내에서 판매할 수 있습니다.플레이어는 아이템을 검색하고, 자신의 아바타에서 자산을 미리 보고, 아이템을 구매하고, 경험을 떠나지 않고 즉시 사용하거나 장착할 수 있습니다.이것은 경험을 수익화하고 다른 크리에이터의 아이템 판매와 관련된 40% 제휴 수수료를 통해 수익을 얻는 데 도움이 될 수 있습니다 monetize 경험.
모듈 사용
설치
경험에서 MerchBooth 모듈을 사용하려면:
보기 탭에서 도구 상자 를 열고 크리에이터 스토어 탭을 선택합니다.
모델 정렬이 선택되었는지 확인한 다음 모두 보기 버튼을 클릭하여 카테고리를 확인하십시오.
찾아서 클릭하십시오 개발자 모듈 타일.
상품 부스 모듈을 찾아 클릭하거나 3D 뷰에 드래그 앤 드롭하세요.
탐색기 창에서 전체 MerchBooth 모델을 ServerScriptService 로 이동합니다.경험을 실행하면 모듈이 다양한 서비스에 배포되고 실행을 시작합니다.
구성
모듈은 대부분의 사용 사례에서 작동하도록 미리 구성되었지만 configure 함수를 통해 쉽게 사용자 지정할 수 있습니다.예를 들어, 더 가벼운 테마를 만들고 카탈로그 뷰의 왼쪽 상단 영역에서 기본 필터 버튼을 비활성화하려면:
In 스타터 플레이어 스크립트 , 새로운 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})
아이템 추가
상품 부스에 상품이 없으면 어떻게 됩니까? 다음 섹션에서는 상품 부스에 아바타 자산, 패스, 및 개발자 제품을 추가하는 방법을 설명합니다.
아바타 자산
의류 및 액세서리와 같은 아이템은 아바타 상점의 상품 세부 페이지에 있는 자산 ID를 통해 추가되어야 합니다.
Create a Script 내에서 서버스크립트 서비스 내에서 다음 코드를 붙여넣으세요.
스크립트 - 아바타 자산 추가local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend아바타 상점 URL에서 아이템 자산 ID를 복사하세요. 예를 들어, Roblox 야구모자의 ID는 607702162 입니다.
복사한 각 ID를 items 테이블 내의 쉼표 구분 목록에 붙여넣습니다.기본적으로 항목은 알파벳 순서로 카탈로그 뷰에 나타나지만, setCatalogSort를 사용하여 정렬을 사용자 지정할 수 있습니다.
스크립트 - 아바타 자산 추가local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {607702162, -- Roblox 야구 모자4819740796, -- 로박스1374269, -- 고양이 귀11884330, -- 너드 안경10476359, -- 종이 모자}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend
패스
패스 를 추가하려면 크리에이터 대시보드에서 찾을 수 있는 패스 ID가 필요합니다.
Create a Script 내에서 서버스크립트 서비스 내에서 다음 코드를 붙여넣으세요.
스크립트 - 패스 추가local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend탐색하여 크리에이터 대시보드로 이동하고 경험을 선택합니다.
왼쪽 열에서 수익 창출 아래에서 패스 를 선택합니다.
섬네일썸네일 위로 마우스를 이동하고 ⋯ 버튼을 클릭하고 컨텍스트 메뉴에서 자산 ID 복사 를 선택합니다.
각 복사된 ID를 items 테이블의 쉼표로 구분된 목록에 붙여넣고 및 두 번째 매개변수로 Enum.InfoType.GamePass 를 포함하여 항목이 패스임을 나타내는 addItemAsync 을 추가합니다.기본적으로 항목은 알파벳 순서로 카탈로그 뷰에 나타나지만, setCatalogSort를 통해 정렬을 사용자 지정할 수 있습니다.
스크립트 - 패스 추가local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {4343758, -- ColdFyre 방어구28521575, -- 슬라임 방패}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)end)if not success thenwarn(errorMessage)endend
개발자 제품
개발자 제품 추가 는 크리에이터 대시보드에 위치할 수 있는 제품 ID가 필요합니다.
Create a Script 내에서 서버스크립트 서비스 내에서 다음 코드를 붙여넣으세요.
스크립트 - 개발자 제품 추가local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend탐색하여 크리에이터 대시보드로 이동하고 경험을 선택합니다.
왼쪽 열에서 수익 창출 아래에서 개발자 제품 을 선택합니다.
제품의 썸네일 위로 섬네일이동하고 ⋯ 버튼을 클릭하고 컨텍스트 메뉴에서 자산 ID 복사 를 선택합니다.
각 복사된 ID를 테이블의 쉼표로 구분된 목록에 붙여넣고 및 두 번째 매개변수로 을 포함하여 항목이 개발자 제품임을 나타내는 addItemAsync 을 추가합니다.기본적으로 항목은 알파벳 순서로 카탈로그 뷰에 나타나지만, setCatalogSort를 사용하여 정렬을 사용자 지정할 수 있습니다.
스크립트 - 개발자 제품 추가local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {1236602053, -- 매나 재충전1257880672, -- 치유 물약}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)end)if not success thenwarn(errorMessage)endend
사용자 지정 카탈로그 버튼
기본적으로 오른쪽 카탈로그 버튼 은 플레이어가 언제든지 부스를 열 수 있도록 합니다.

일부 경우, 이 버튼을 제거하고 자신의 보유연결하는 것이 유용할 수 있습니다.
버튼 버튼에 설명된 대로 새 버튼을 생성합니다.
버튼 개체의 자식으로 LocalScript를 생성합니다.
새 스크립트에 다음 코드를 붙여넣습니다.
로컬스크립트 - 사용자 지정 카탈로그 버튼local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))-- 기본 카탈로그 버튼 제거MerchBooth.toggleCatalogButton(false)-- 사용자 지정 버튼 연결script.Parent.Activated:Connect(function()MerchBooth.openMerchBooth()end)
구매 가능한 지역
경험에서 구매를 유도하는 유용한 방법 중 하나는 플레이어가 영역에 들어갈 때 상점 부스를 자동으로 표시하는 것입니다.
구매할 수 있는 지역을 만들려면:
감지 영역을 포함하는 Anchored 블록을 생성합니다.차단이 충돌할 수 있을만큼 충분히 높은지 확인하십시오(기본적으로 캐릭터 모델의 HumanoidRootPart ).
플레이어가 상점 카운터 앞으로 접근했을 때 감지하는 블록 블록의 속성 또는 Studio의 태그 편집기 섹션을 사용하여 태그 태그를 블록에 적용하여 검색을 수행합니다.Using the Tags section of the block's properties, or Studio's Tag Editor , apply the tag ShopRegion to the block so that CollectionService detects it.
부품의 Transparency를 최대로 설정하여 경험의 플레이어로부터 숨기세요.또한 개체가 물리적으로 충돌하지 않고 레이캐스트가 감지하지 않도록 CanCollide 및 CanQuery 속성을 비활성화합니다.
새로운 LocalScript 를 스타터플레이어 스크립트 아래에 삽입합니다.
새 스크립트에서는 Touched 및 TouchEnded 이벤트를 사용하여 문자가 영역에 들어가거나 나가는 시기를 감지하고 openMerchBooth 및 closeMerchBooth 을 호출하여 부스 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.Characterif character and otherPart == character.PrimaryPart thenMerchBooth.openMerchBooth()endend)region.TouchEnded:Connect(function(otherPart)local character = Players.LocalPlayer.Characterif character and otherPart == character.PrimaryPart thenMerchBooth.closeMerchBooth()endend)end-- 기존의 태그된 상점 영역을 반복하기for _, region in CollectionService:GetTagged("ShopRegion") dosetupRegion(region)end-- 스트리밍되지 않은 상점 영역이 스트림되는 시기 감지CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)
근접 프롬프트
2D 카탈로그 뷰의 대안으로, 경험 내 개체 위에 근접 프롬프트 를 추가할 수 있습니다.이렇게 하면 플레이어가 3D 환경에서 아이템을 발견하고, 자신의 아바타에서 미리 보고, 구매하고, 즉시 장착할 수 있습니다.자세한 내용은 addProximityButton에 참조하십시오.
장비 효과 변경
기본적으로 상인 부스는 플레이어가 아이템을 장착할 때 일반적인 반짝임 효과를 표시합니다.효과를 변경하려면 particleEmitterTemplate 를 ParticleEmitter 의 자체 인스턴스로 설정하여 configure 호출에서 변경하십시오.
로컬스크립트 - 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 가시성
기본적으로 상점 부스는 UI가 나타날 때 모든 ScreenGuis 및 CoreGuis 와 함께 숨겨집니다, 채팅, 리더보드 및 Roblox에 의해 포함된 다른 사람들을 포함하여.이 동작을 비활성화하려면 구성 hideOtherUis 을 false 에 호출하여 구성 에 설정하십시오.
로컬스크립트 - ConfigureMerchBooth
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.configure({hideOtherUis = false})
캐릭터 이동
상점 부스에 있는 동안 캐릭터가 이동하지 않도록 하는 것이 유리할 수 있습니다.이는 구성 disableCharacterMovement 호출에서 true 를 구성으로 설정하여 수행할 수 있습니다.
로컬스크립트 - ConfigureMerchBooth
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.configure({disableCharacterMovement = true})
API 참조
유형
아이템
상점 부스의 아이템은 다음 키-값 쌍으로 구성된 사전으로 나타납니다.아이템은 getItems 함수 또는 itemadded 이벤트를 통해 수집할 수 있습니다.
키 | 유형 | 설명 |
---|---|---|
assetId | 번호 | addItemAsync에 전달된 아이템의 카탈로그 ID. |
title | 문자열 | 카탈로그에 표시된 아이템 제목. |
price | 번호 | Robux의 아이템 가격. |
description | 문자열 | 카탈로그에 표시된 아이템 설명. |
assetType | 문자열 | 아이템의 액세서리 입력나타내는 문자열. |
isOwned | 부울 | 현재 플레이어가 아이템을 소유하고 있는지 여부. |
creatorName | 문자열 | 카탈로그에 표시된 아이템 생성자. |
creatorType | Enum.CreatorType | 아이템의 크리에이터 유형. |
열거형
상점 컨트롤.Controls
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})
함수
구성
구성(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 | 카탈로그 뷰의 가격 버튼이나 시도하기 버튼( )과 같은 작은 버튼의 배경색. | [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,})
아이템 추가Async
addItemAsync(자산ID: number , 제품 유형: Enum.InfoType , hideFromCatalog: boolean )
경험에서 구매할 수 있도록 비동기적으로 아이템을 상점에 추가합니다.assetId 는 항목의 자산 ID이고, productType 는 항목의 Enum.InfoType 열거형이며, hideFromCatalog 는 카탈로그 뷰에서 항목을 숨기는 데 사용할 수 있습니다.
자세한 내용은 아이템 추가를 참조하십시오, 사용이 자산 과 게임 패스 또는 개발자 제품 에 약간 다르기 때문입니다.
스크립트 - 아바타 자산 추가
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
607702162, -- Roblox 야구 모자
4819740796, -- 로박스
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, -- ColdFyre 방어구
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
아이템 가져오기 getItems
getItems(): 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
아이템 제거
제거 항목(자산ID: number )
addItemAsync 로 이전에 추가된 항목을 등록 취소하여 카탈로그 뷰에서 타일을 제거하고 할당된 모든 근접 알림 을 제거합니다.이 함수는 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 , 자산ID: number )
지정된 근접 프롬프트를 추가하여 자산 ID에 따라 항목의 구매 보기를 표시하도록 트리거하는 지정된 adornee에 대해 디스플레이됩니다.이를 2D 카탈로그 뷰의 대안으로 사용하여 플레이어가 3D 환경에서 아이템을 발견하도록 유도할 수 있습니다.
근접 버튼이 할당될 수 있도록 항목을 추가하려면 addItemAsync을 통해 항목을 추가해야 합니다.또한 참조하십시오 removeProximityButton 개체에서 근접 프롬프트를 제거하려면.
스크립트
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
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
제거ProximityButton
제거ProximityButton(adornee: BasePart | Model | Attachment )
추가 근접 버튼을 통해 생성된 근접 프롬프트를 제거합니다. 이 함수는 에서만 호출할 수 있습니다.
스크립트
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
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
목록 정렬 설정 catalogSort
setCatalogSort(sortFunction: function ): boolean
카탈로그 뷰에서 사용할 정렬 함수 sortFunction를 설정합니다.제공된 정렬 함수는 아이템 정보와 같은 논리를 사용할 수 있습니다. price 또는 title .이 함수는 LocalScript
여기에는 카탈로그를 정렬하는 몇 가지 예가 있습니다:
가격 낮음에서 높음
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)
컨트롤 키 코드 설정
setControlKeyCommands(control: MerchBooth.Controls , keyCommands: table )
상점 부스와의 상호 작용에 대한 키 및 버튼 값을 구성합니다.첫 번째 매개 변수는 MerchBooth.Controls 열거형이어야 하고 두 번째 매개 변수는 키 keyboard 및/또는 gamepad와 해당하는 Enum.KeyCode 열거형을 포함하는 테이블입니다.
열거 ( 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 |
로컬 스크립트
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()
오픈아이템뷰
openItemView(아이템ID: 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 )
화면 오른쪽의 카탈로그 버튼을 켜거나 끕니다.이는 사용자 지정 버튼을 구현하거나 상점의 모양을 지역 또는 근접 알림으로 제한할 때 유용합니다.LocalScript
로컬 스크립트
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.toggleCatalogButton(false)
상품 부스 열기 isMerchBoothOpen
isMerchBoothOpen(): 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
닫기상점 부스
closeMerchBooth()
상점 부스 창을 닫습니다. 이 함수는 LocalScript 호출할 수 있습니다.
로컬 스크립트
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.closeMerchBooth()
isMerchBoothEnabled
isMerchBoothEnabled(): boolean
이 함수는 setEnabled와 함께 사용하여 현재 상점 부스가 활성화되었는지 여부를 확인할 수 있습니다.LocalScript
설정된 활성화
setEnabled(enabled: boolean )
전체 상점 부스가 활성화되었는지 여부를 설정합니다.비활성화되면 이 함수는 근접 프롬프트를 비롯한 전체 UI를 제거하고 모든 이벤트를 연결 해제합니다.이 함수는 LocalScript
로컬 스크립트
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local isEnabled = MerchBooth.isMerchBoothEnabled()if isEnabled thenMerchBooth.setEnabled(false)end
이벤트
항목 추가
addItemAsync를 통해 항목이 추가될 때 발생합니다. 이 이벤트는 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)
아이템 제거됨
removeItem을 통해 항목이 제거될 때 발생합니다. 이 이벤트는 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)
상점 열기 merchBoothOpen
카탈로그 또는 항목 세부 정보 뷰가 열릴 때 발생합니다.
로컬 스크립트
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothOpened:Connect(function()
print("Booth view opened")
end)
상점 닫기 merchBoothClosed
카탈로그 또는 항목 세부 정보 뷰가 닫힐 때 발생합니다.
로컬 스크립트
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothClosed:Connect(function()
print("Booth view closed")
end)
카탈로그뷰Opened
카탈로그 뷰가 열릴 때 발생합니다.
로컬 스크립트
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)