บริการตัวแก้ไขอวตาร

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

บริการตัวแก้ไขอวาตาร์ทำให้คุณสามารถเข้าถึงและทำการเปลี่ยนแปลงต่ออวาตาร์ของผู้ใช้ภายในประสบการณ์ได้บริการตัวแก้ไขอวาตาร์สามารถเข้าถึงคลังสินค้าของผู้ใช้และ ตลาด เพื่อบันทึกชุดและซื้อไอเทมอวาตาร์ให้กับบัญชีผู้ใช้

เราแนะนำให้ใช้บริการตัวแก้ไขอวตารกับเอดิเตอร์อวตารในเกมเพื่อประสบการณ์การปรับแต่งตัวละครแบบสมบูรณ์ดูสถานที่อ้างอิง สาธิตเครื่องแต่งตัวอวตารง่าย สำหรับตัวอย่างของคุณสมบัตินี้

เพื่อเริ่มใช้บริการตัวแก้ไขอวตาร คลังไอเท็ม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 do
print(item)
end
end

ค้นหาตลาด

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 = assetTypes
local pagesObject =
--ฟังก์ชันนี้คืนวัตถุ CatalogPages ที่มีผลลัพธ์
AvatarEditorService:SearchCatalog(catalogSearchParams)
local currentPage = pagesObject:GetCurrentPage()
for _, item in currentPage do
print(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.LocalPlayer
local 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.LocalPlayer
local 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() แทน