Avatar Editör Hizmeti

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Avatar Editör Hizmeti, deneyim içinde bir kullanıcının avatarına erişmenizi ve değişiklik yapmanızı sağlar.Avatar Editör Hizmeti ayrıca bir kullanıcının envanterine ve Pazar alanına erişebilir ve kullanıcının hesapkıyafetleri kaydetmek ve avatar eşyaları satın almak için.

Tam bir karakter özelleştirme deneyimi için oyun içi bir avatar editörü ile Avatar Editör Hizmetini uygulamanızı öneririz.Bu özellikbir örneği için Basit Avatar Editörü Demosu referans yerine bakın.

Avatar Editör Hizmetini kullanmaya başlamak için önce kullanıcının envanterine erişim isteği göndermelisiniz.Erişim başarıyla verildikten sonra, aşağıdaki eylemleri yapabilirsiniz:

Erişim erişim

Bir kullanıcının envanterine erişmeye başlamak için, kullanıcıya PromptAllowInventoryReadAccess() aracılığıyla erişime izin vermesini istemeniz gerekir.Bu isteği oturum başına bir kez yerine getirmeniz gerekir.

Erişim isteğini başlatmak ve kullanıcı yanıtını dinlemek için aşağıdaki kod örneğini kullanın:


local AvatarEditorService = game:GetService("AvatarEditorService")
AvatarEditorService:PromptAllowInventoryReadAccess()
local result = AvatarEditorService.PromptAllowInventoryReadAccessCompleted:Wait()
if result == Enum.AvatarPromptResult.Success then
-- Erişim verildi!
end

Kullanıcı aşağıdaki uyarıyı alır:

Kullanıcı talimatı kabul ettiğinde, AvatarEditorService kullanıcının envanterine erişmeye başlayabilir.

Kullanıcı envanterini oku

Erişim kullanıcı tarafından verildikten sonra, filtrelemek için bir dizi GetInventory() sağlayan AvatarAssetTypes fonksiyonuyla envanterini okuyabilirsiniz.Bu işlev, kullanıcının sahip olduğu öğeleri içeren bir InventoryPages nesnesi döndürür.

Bir kullanıcının envanterinde belirli aksesuarların listesini yazdırmak için aşağıdaki kod örneğini kullanın:


local AvatarEditorService = game:GetService("AvatarEditorService")
AvatarEditorService:PromptAllowInventoryReadAccess()
local result = AvatarEditorService.PromptAllowInventoryReadAccessCompleted:Wait()
if result == Enum.AvatarPromptResult.Success then
-- Erişim verildi!
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

Pazarı Araştır

AvatarEditorService Roblox kataloğunu aramanıza izin veren işlevleri ve olayları içerir.Aramak için, sorgunuzu aşağıdaki özelliklerden bir veya daha fazlasını içeren bir CatalogSearchParams nesnesiyle gönderin:

ÖzellikAçıklama
Varlık TürleriEnum.AvatarAssetType.BackAccessory gibi bir dizi Enum.AvatarAssetType .
Paket TürleriEnum.BundleType.BodyParts gibi bir dizi Enum.BundleType .
KategoriFiltreleyiciBir Enum.CatalogCategoryFilter "Öne çıkan" veya "Topluluk Yaratımları" gibi çeşitli katalog kategorilerini tanımlayan. Varsayılan olarak bu, Enum.CatalogCategoryFilter.None olarak ayarlanır
Maksimum Fiyatfiltreiçin maksimum fiyatı tanımlayan bir tamsayı.
Minimum Fiyatfiltreiçin minimum fiyatı tanımlayan bir tamsayı.Varsayılan olarak, MinPrice 0 dir.
Arama KelimesiKataloğdaki öğe açıklamalarına sorgulanacak bir dize.
Tür SıralamaSonuçların nasıl sıralandığını tanımlayan bir Enum.CatalogSortType . Varsayılan olarak bunun değeri Enum.CatalogSortType.Relevance .
Satıştan Çıkarma Dahil EtArama sonuçlarının satış eşyalarını içerip içermediğini tanımlayan bir boolean. Varsayılan olarak bu değer false olarak ayarlanır.
YaratıcıIdBelirli bir yaratıcıyı tanımlamak için bir sayısal değer. Bir KullanıcıId veya Bir GrupId kullanabilirsiniz.
YaratıcıAdıBelirli bir yaratıcı tarafından oluşturulan öğeler aranmak için kullanılan bir dize. Kullanıcı Adı veya Grup Adı kullanabilirsiniz.

Aşağıdaki kod örnekleri, CatalogSearchParams ve Omuz varlık türleri için bir Nesne oluşturur ve bunu bir SearchCatalog() aracılığıyla geçer:


local AvatarEditorService = game:GetService("AvatarEditorService")
local catalogSearchParams = CatalogSearchParams.new()
local assetTypes = {
Enum.AvatarAssetType.BackAccessory,
Enum.AvatarAssetType.ShoulderAccessory
}
catalogSearchParams.AssetTypes = assetTypes
local pagesObject =
--Bu işlev, sonuçları içeren bir KatalogSayfaları nesnesi döndürür.
AvatarEditorService:SearchCatalog(catalogSearchParams)
local currentPage = pagesObject:GetCurrentPage()
for _, item in currentPage do
print(item)
end

Avatarlar ve kıyafetler kaydet

Oyun içi avatar editörü ile birlikte kullanıldığında, AvatarEditorService avatar öğelerini ve kıyafetlerini Roblox platformuna kaydedip güncelleyebilir.Kullanıcılar, bir avatar veya kıyafet kaydederken sahip olmadıkları katalog öğelerini almazlar.

Herhangi biri HumanoidDescription kullanıcının mevcut avatarına PromptSaveAvatar() kaydedilebilir. Bu içerebilir:

  • Mevcut katalog öğelerini kullanarak oluşturduğunuz önceden tanımlanmış avatar yapılandırmaları.
  • Kullanıcının oyun içi bir avatar editörü aracılığıyla seçtiği herhangi bir yapılandırma.

Çünkü AvatarEditorService:PromptSaveAvatar() vermiyor, sonuçu AvatarEditorService.PromptSaveAvatarCompleted etkinliğini dinleyerek alabilirsiniz.

Aşağıdaki kod, mevcut bir kaydedecek ve başarılı bir etkinliği kontrol edecektir:


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
-- Avatar kaydedildi!
end

Herhangi bir HumanoidDescription kıyafet olarak kaydetmek (kullanıcının mevcut avatarını üzerine yazmadan), AvatarEditorService:PromptCreateOutfit() kullanın.

Bir kez çağrıldıktan sonra, AvatarEditorService:PromptCreateOutfit() etkinliğini dinleyerek AvatarEditorService.PromptCreateOutfitCompleted sonucunu alabilirsiniz.

Aşağıdaki kod örneği, AvatarEditorService:PromptCreateOutfit() ile bir kıyafet oluşturur ve başarılı bir AvatarEditorService.PromptCreateOutfitCompleted etkinliğini dinler:


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
-- Kıyafet kaydedildi!
end

Eşyalar satın alın

Avatar veya katalog öğelerini kullanan bir kıyafet veya kıyafet kaydedildiğinde, kullanıcı sahip olmadığı herhangi bir öğe almaz.Bir avatar veya kıyafet kaydetmeden önce, kullanıcının varlığı MarketplaceService:PlayerOwnsAsset() ile sahip olup olmadığını kontrol edin ve onlara öğe satın alma seçeneği sağlayın MarketplaceService:PromptPurchase() .

Eşya satın alımlarını uygulamak istemiyorsanız, bunun yerine kullanıcıların sahip olmadıkları öğeleri favorilerine eklemesine izin verebilirsiniz AvatarEditorService:PromptSetFavorite() .