상품 부스

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

The MerchBooth 개발자 모듈 lets you offer 아바타 자산, 패스, 및 개발자 제품 직접 경험 내에서 판매할 수 있습니다.플레이어는 아이템을 검색하고, 자신의 아바타에서 자산을 미리 보고, 아이템을 구매하고, 경험을 떠나지 않고 즉시 사용하거나 장착할 수 있습니다.이것은 경험을 수익화하고 다른 크리에이터의 아이템 판매와 관련된 40% 제휴 수수료를 통해 수익을 얻는 데 도움이 될 수 있습니다 monetize 경험.

모듈 사용

설치

경험에서 MerchBooth 모듈을 사용하려면:

  1. 보기 탭에서 도구 상자 를 열고 크리에이터 스토어 탭을 선택합니다.

    Toolbox toggle button in Studio
  2. 모델 정렬이 선택되었는지 확인한 다음 모두 보기 버튼을 클릭하여 카테고리를 확인하십시오.

  3. 찾아서 클릭하십시오 개발자 모듈 타일.

  4. 상품 부스 모듈을 찾아 클릭하거나 3D 뷰에 드래그 앤 드롭하세요.

  5. 탐색기 창에서 전체 MerchBooth 모델을 ServerScriptService 로 이동합니다.경험을 실행하면 모듈이 다양한 서비스에 배포되고 실행을 시작합니다.

구성

모듈은 대부분의 사용 사례에서 작동하도록 미리 구성되었지만 configure 함수를 통해 쉽게 사용자 지정할 수 있습니다.예를 들어, 더 가벼운 테마를 만들고 카탈로그 뷰의 왼쪽 상단 영역에서 기본 필터 버튼을 비활성화하려면:

  1. In 스타터 플레이어 스크립트 , 새로운 LocalScript 를 만들고 마켓 부스 구성 으로 이름을 변경합니다.

  2. 새 스크립트에 다음 코드를 붙여넣습니다.

    로컬스크립트 - ConfigureMerchBooth

    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. Create a 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. 아바타 상점 URL에서 아이템 자산 ID를 복사하세요. 예를 들어, Roblox 야구모자의 ID는 607702162 입니다.

  3. 복사한 각 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 do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end

패스

패스 를 추가하려면 크리에이터 대시보드에서 찾을 수 있는 패스 ID가 필요합니다.

  1. Create a 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. 왼쪽 열에서 수익 창출 아래에서 패스 를 선택합니다.

  4. 섬네일썸네일 위로 마우스를 이동하고 버튼을 클릭하고 컨텍스트 메뉴에서 자산 ID 복사 를 선택합니다.

  5. 각 복사된 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 do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)
    end)
    if not success then
    warn(errorMessage)
    end
    end

개발자 제품

개발자 제품 추가 는 크리에이터 대시보드에 위치할 수 있는 제품 ID가 필요합니다.

  1. Create a 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. 왼쪽 열에서 수익 창출 아래에서 개발자 제품 을 선택합니다.

  4. 제품의 썸네일 위로 섬네일이동하고 버튼을 클릭하고 컨텍스트 메뉴에서 자산 ID 복사 를 선택합니다.

  5. 각 복사된 ID를 테이블의 쉼표로 구분된 목록에 붙여넣고 및 두 번째 매개변수로 을 포함하여 항목이 개발자 제품임을 나타내는 addItemAsync 을 추가합니다.기본적으로 항목은 알파벳 순서로 카탈로그 뷰에 나타나지만, setCatalogSort를 사용하여 정렬을 사용자 지정할 수 있습니다.

    스크립트 - 개발자 제품 추가

    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 블록을 생성합니다.차단이 충돌할 수 있을만큼 충분히 높은지 확인하십시오(기본적으로 캐릭터 모델의 HumanoidRootPart ).

    플레이어가 상점 카운터 앞으로 접근했을 때 감지하는 블록
  2. 블록의 속성 또는 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.

  3. 부품의 Transparency를 최대로 설정하여 경험의 플레이어로부터 숨기세요.또한 개체가 물리적으로 충돌하지 않고 레이캐스트가 감지하지 않도록 CanCollideCanQuery 속성을 비활성화합니다.

  4. 새로운 LocalScript스타터플레이어 스크립트 아래에 삽입합니다.

  5. 새 스크립트에서는 TouchedTouchEnded 이벤트를 사용하여 문자가 영역에 들어가거나 나가는 시기를 감지하고 openMerchBoothcloseMerchBooth 을 호출하여 부스 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 환경에서 아이템을 발견하고, 자신의 아바타에서 미리 보고, 구매하고, 즉시 장착할 수 있습니다.자세한 내용은 addProximityButton에 참조하십시오.

장비 효과 변경

기본적으로 상인 부스는 플레이어가 아이템을 장착할 때 일반적인 반짝임 효과를 표시합니다.효과를 변경하려면 particleEmitterTemplateParticleEmitter 의 자체 인스턴스로 설정하여 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.Sphere
myParticleEmitter.Transparency = NumberSequence.new(0, 1)
myParticleEmitter.RotSpeed = NumberRange.new(200, 200)
MerchBooth.configure({
particleEmitterTemplate = myParticleEmitter
})

GUI 가시성

기본적으로 상점 부스는 UI가 나타날 때 모든 ScreenGuisCoreGuis 와 함께 숨겨집니다, 채팅, 리더보드 및 Roblox에 의해 포함된 다른 사람들을 포함하여.이 동작을 비활성화하려면 구성 hideOtherUisfalse 에 호출하여 구성 에 설정하십시오.

로컬스크립트 - 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문자열카탈로그에 표시된 아이템 생성자.
creatorTypeEnum.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.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()

오픈아이템뷰

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 then
MerchBooth.setEnabled(false)
end

이벤트

항목 추가

addItemAsync를 통해 항목이 추가될 때 발생합니다. 이 이벤트는 Script

매개 변수
자산ID: number아이템 자산 ID.
아이템 정보: table아이템 정보와 같은 사전 price 또는 title .
스크립트

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)