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:
- Kullanıcının envanterini okuyun kullanıcının sahip olduğu öğelerin bir listesini almak için.
- Pazarı araştırın , filtreleme ve sıralama için çeşitli özellikler kullanarak.
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 doprint(item)endend
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:
Özellik | Açıklama |
---|---|
Varlık Türleri | Enum.AvatarAssetType.BackAccessory gibi bir dizi Enum.AvatarAssetType . |
Paket Türleri | Enum.BundleType.BodyParts gibi bir dizi Enum.BundleType . |
KategoriFiltreleyici | Bir 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 Fiyat | filtreiçin maksimum fiyatı tanımlayan bir tamsayı. |
Minimum Fiyat | filtreiçin minimum fiyatı tanımlayan bir tamsayı.Varsayılan olarak, MinPrice 0 dir. |
Arama Kelimesi | Kataloğdaki öğe açıklamalarına sorgulanacak bir dize. |
Tür Sıralama | Sonuç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 Et | Arama 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ıId | Belirli 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 = assetTypeslocal 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 doprint(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.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-- 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.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-- 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() .