บริการตัวแก้ไขอวาตาร์ทำให้คุณสามารถเข้าถึงและทำการเปลี่ยนแปลงต่ออวาตาร์ของผู้ใช้ภายในประสบการณ์ได้บริการตัวแก้ไขอวาตาร์สามารถเข้าถึงคลังสินค้าของผู้ใช้และ ตลาด เพื่อบันทึกชุดและซื้อไอเทมอวาตาร์ให้กับบัญชีผู้ใช้
เราแนะนำให้ใช้บริการตัวแก้ไขอวตารกับเอดิเตอร์อวตารในเกมเพื่อประสบการณ์การปรับแต่งตัวละครแบบสมบูรณ์ดูสถานที่อ้างอิง สาธิตเครื่องแต่งตัวอวตารง่าย สำหรับตัวอย่างของคุณสมบัตินี้
เพื่อเริ่มใช้บริการตัวแก้ไขอวตาร คลังไอเท็มrequest access ก่อนหลังจากได้รับการอนุญาตเข้าถึงเรียบร้อยแล้ว คุณสามารถดำเนินการต่อไปนี้ได้:
- อ่านสินค้าคงคลังของผู้ใช้ เพื่อรับรายการของไอเทมที่เป็นเจ้าของโดยผู้ใช้
- ค้นหาตลาด เรียงลำดับ
- เรียกให้ผู้ใช้ซื้อ ไอเท็ม
ขอการเข้าถึง
คลังไอเท็มคุณต้องขอให้ผู้ใช้อนุญาตการเข้าถึงผ่าน PromptAllowInventoryReadAccess()คุณต้องดำเนินการตามคำขอนี้หนึ่งครั้งต่อเซสชัน
ใช้ตัวอย่างโค้ดต่อไปนี้เพื่อเริ่มต้นคำขอการเข้าถึงและฟังการตอบสนองของผู้ใช้:
local AvatarEditorService = game:GetService("AvatarEditorService")AvatarEditorService:PromptAllowInventoryReadAccess()local result = AvatarEditorService.PromptAllowInventoryReadAccessCompleted:Wait()if result == Enum.AvatarPromptResult.Success then-- การเข้าถึงได้รับอนุญาต!end
ผู้ใช้ได้รับคำแนะนำต่อไปนี้:

เมื่อผู้ใช้ยอมรับคำแนะนำแล้ว AvatarEditorService คลังไอเท็ม
คลังไอเท็ม
เมื่อได้รับการอนุญาตให้เข้าถึงโดยผู้ใช้แล้ว คุณสามารถอ่านสินค้าคงคลังของพวกเขาด้วยฟังก์ชัน GetInventory() โดยจัดหาคอลเลกชันของ AvatarAssetTypes เพื่อกรองฟังก์ชันนี้ส่งคืนวัตถุ InventoryPages ที่มีรายการที่เป็นเจ้าของของผู้ใช้
คลังไอเท็ม:
local AvatarEditorService = game:GetService("AvatarEditorService")AvatarEditorService:PromptAllowInventoryReadAccess()local result = AvatarEditorService.PromptAllowInventoryReadAccessCompleted:Wait()if result == Enum.AvatarPromptResult.Success then-- การเข้าถึงได้รับอนุญาต!local assetTypes = {Enum.AvatarAssetType.BackAccessory,Enum.AvatarAssetType.ShoulderAccessory,Enum.AvatarAssetType.WaistAccessory}local pagesObject = AvatarEditorService:GetInventory(assetTypes)local currentPage = pagesObject:GetCurrentPage()for _, item in currentPage doprint(item)endend
ค้นหาตลาด
AvatarEditorService รวมฟังก์ชันและอีเวนต์ที่ช่วยให้คุณสามารถค้นหาแคตตาล็อก Roblox ได้เพื่อค้นหา, ให้คำถามของคุณด้วยวัตถุ CatalogSearchParams ที่รวมถึงหนึ่งหรือมากกว่าสิ่งต่อไปนี้:
คุณสมบัติ | คําอธิบาย |
---|---|
ประเภทสินทรัพย์ | ชุดของ Enum.AvatarAssetType เช่น Enum.AvatarAssetType.BackAccessory |
ประเภทชุด | ชุดของ Enum.BundleType เช่น Enum.BundleType.BodyParts |
ตัวกรองประเภท | A Enum.CatalogCategoryFilter อธิบายหมวดหมู่แคตตาล็อกต่างๆ เช่น "โดดเด่น" หรือ "การสร้างชุมชน" โดยค่าเริ่มต้นจะถูกตั้งเป็น Enum.CatalogCategoryFilter.None |
ราคาสูงสุด | ตัวกรอง |
ราคาขั้นต่ำ | ตัวเลขที่อธิบายราคาขั้นต่ำที่จะกรอง โดยปกติ MinPrice คือ 0 |
ค้นหาคีย์เวิร์ด | สตริงที่จะสอบถามต่อคำอธิบายรายการในคลังข้อมูล |
ประเภทการจัดเรียง | A Enum.CatalogSortType ที่อธิบายวิธีการจัดเรียงผลลัพธ์ โดยค่าเริ่มต้นจะถูกตั้งเป็น Enum.CatalogSortType.Relevance |
รวมขายลดราคา | เป็นไบนารีที่อธิบายว่าผลลัพธ์จากการค้นหารวมถึงรายการออฟเซลหรือไม่ โดยค่าเริ่มต้นจะถูกตั้งเป็น false |
ID ผู้สร้าง | ครีเอเตอร์คุณสามารถใช้ UserId หรือ GroupId ได้ |
ชื่อผู้สร้าง | สตริงที่ใช้ในการค้นหาโดยรายการที่สร้างโดยผู้สร้างรายหนึ่ง ครีเอเตอร์ |
ตัวอย่างโค้ดต่อไปนี้สร้างวัตถุ CatalogSearchParams สำหรับ กลับ และ ไหล่ ประเภททรัพยากร และส่งผ่านผ่านการโทร SearchCatalog() :
local AvatarEditorService = game:GetService("AvatarEditorService")local catalogSearchParams = CatalogSearchParams.new()local assetTypes = {Enum.AvatarAssetType.BackAccessory,Enum.AvatarAssetType.ShoulderAccessory}catalogSearchParams.AssetTypes = assetTypeslocal pagesObject =--ฟังก์ชันนี้คืนวัตถุ CatalogPages ที่มีผลลัพธ์AvatarEditorService:SearchCatalog(catalogSearchParams)local currentPage = pagesObject:GetCurrentPage()for _, item in currentPage doprint(item)end
บันทึกตัวละครและชุด
เมื่อใช้ร่วมกับเครื่องมือตกแต่งอวตารในเกม, AvatarEditorService สามารถบันทึกและอัปเดตไอเทมและชุดอวตารบนแพลตฟอร์ม Roblox ได้ผู้ใช้ไม่ได้รับรายการในแคตตาล็อกที่พวกเขาไม่ได้เป็นเจ้าของเมื่อบันทึกอวตารหรือชุด
ใดๆ HumanoidDescription สามารถบันทึกลงในอวตารปัจจุบันของผู้ใช้ด้วย PromptSaveAvatar() นี่อาจรวมถึง:
- การกำหนดค่าตัวละครล่วงหน้าที่คุณสร้างโดยใช้รายการคลังเก็บที่มีอยู่
- การกำหนดค่าใดๆ ที่ผู้ใช้เลือกผ่านตัวแก้ไขอวตารในเกม

เนื่องจาก AvatarEditorService:PromptSaveAvatar() ไม่ให้ผล คุณสามารถรับผลลัพธ์ได้โดยฟังอีเวนต์ AvatarEditorService.PromptSaveAvatarCompleted
รหัสต่อไปนี้จะบันทึกการดำเนินการปัจจุบัน HumanoidDescription โดยใช้ PromptSaveAvatar() และตรวจสอบกิจกรรม AvatarEditorService.PromptSaveAvatarCompleted ที่ประสบความสำเร็จ:
local AvatarEditorService = game:GetService("AvatarEditorService")local Players = game:GetService("Players")local player = Players.LocalPlayerlocal character = player.Character or player.CharacterAdded:Wait()local humanoid = character:WaitForChild("Humanoid")local currentDescription = humanoid:GetAppliedDescription()AvatarEditorService:PromptSaveAvatar(currentDescription, humanoid.RigType)local result = AvatarEditorService.PromptSaveAvatarCompleted:Wait()if result == Enum.AvatarPromptResult.Success then-- บันทึกอวตารแล้ว!end
เพื่อบันทึกใด ๆ HumanoidDescription เป็นชุด (อวาตาร์) ใช้ AvatarEditorService:PromptCreateOutfit()

เมื่อเรียกแล้ว คุณสามารถรับผลของ AvatarEditorService:PromptCreateOutfit() โดยฟังอีเวนต์ AvatarEditorService.PromptCreateOutfitCompleted
ตัวอย่างโค้ดต่อไปนี้สร้างชุดด้วย AvatarEditorService:PromptCreateOutfit() และฟังกิจกรรม AvatarEditorService.PromptCreateOutfitCompleted ที่ประสบความสำเร็จ:
local AvatarEditorService = game:GetService("AvatarEditorService")local Players = game:GetService("Players")local player = Players.LocalPlayerlocal character = player.Character or player.CharacterAdded:Wait()local humanoid = character:WaitForChild("Humanoid")local currentDescription = humanoid:GetAppliedDescription()AvatarEditorService:PromptCreateOutfit(currentDescription, humanoid.RigType)local result = AvatarEditorService.PromptCreateOutfitCompleted:Wait()if result == Enum.AvatarPromptResult.Success then-- บันทึกชุดแล้ว!end
ซื้อไอเทม
เมื่อบันทึกอวตารหรือชุดที่ใช้รายการในแคตตาล็อก ผู้ใช้จะไม่ได้รับไอเทมใดๆ ที่พวกเขาไม่ได้เป็นเจ้าของก่อนบันทึกอวตารหรือเครื่องแต่งกาย ตรวจสอบว่าผู้ใช้เป็นเจ้าของสินทรัพย์ด้วย MarketplaceService:PlayerOwnsAsset() และให้ตัวเลือกในการซื้อไอเทมด้วย MarketplaceService:PromptPurchase()
หากคุณไม่ต้องการที่จะดำเนินการซื้อรายการ คุณสามารถอนุญาตให้ผู้ใช้ชื่นชอบรายการที่ไม่ได้เป็นเจ้าของด้วย AvatarEditorService:PromptSetFavorite() แทน