Avatar Editör Hizmeti, bir kullanıcının avatarına erişim sağlar ve değişiklikleri bir deneyim içinde yapabilirsiniz. Avatar Editör Hizmeti ayrıca kullanıcının envanterine ve Piyasa ulaşabilir ve kullanıcının hesapavatar öğelerini satın almak için kullanıcıların ürünlerini kaydedebilir.
Komple bir karakter özelleştirme deneyim için oyun içi bir avatar editori ile Avatar Editör Hizmetini uygulamayı öneririz. Ayrıca bu özellikbir örneği için Basit Avatar Editör Demo referansını görün.
Avatar Editor Hizmeti'ni kullanmak için önce kullanıcının envanterine erişim isteğini göndermelisiniz. Erişim başarıyla verildikten sonra şu eylemleri yapabilirsiniz:
- Kullanıcının envanterini okuyun para kullanıcının sahip olduğu eşyaların bir listesini almak için.
- Pazarı Arama Ekranına Yönlendirmeye Kullanınız bir dizi özellik kullanarak filtrelemek ve sıralamak için.
Erişim İstek Ediliyor
Bir kulların envanterine erişim başlatmak için, kullanıcının erişimi PromptAllowInventoryReadAccess() aracılığıyla izin vermesini istemelisiniz. Bu istek, her oturumda bir kez yapılmalıdır.
Erişim isteğini başlatmak ve kullanıcının 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 mesajı alır:
Kullanıcı, talimatı kabul ettiğinde, AvatarEditorService kullanıcının envanterine erişmeye başlayabilir.
Kullanıcı Envanterini Okuyor
Kullanıcı tarafından erişim izni verildiğinde, onların envanterini GetInventory() işleviyle okuyabilirsiniz, bir dizi AvatarAssetTypes sunarak filtrelemeye. Bu işlev, kullanıcının sahip olduğu öğeleri içeren bir Class.Inventory
Kullanıcının envanterinde belirli aksesuarların bir 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 Yerinde Arama
AvatarEditorService , Roblox kataloğunu aramanız için arama işlevleri ve etkinlikleri içerir. Aramak için, aramanızı yapmak için bir veya daha fazla aşağıdaki özelliklerden bir tanesini içeren bir CatalogSearchParams nesnini sağlayın:
Özellik | Açıklama |
---|---|
Varlık Türleri | Envanter.AvatarAssetType gibi bir enum.avatarassetType matrisi. |
Çeşitleri | Envanter.BodyParts gibi Enum.BundleType gibi bir matris. |
Kategori Filtresi | Bir Enum.CatalogCategoryFilter , "Öne Çıkanlar" veya "Topluluk Yaratıkları" gibi çeşitli katalog kategorilerini tarif eden bir Enum.CatalogCategoryFilter.None ile varsayılır. Bu varsayılan olarak 1> CategoryFilter1> ile ayarlanır. |
Maksimum Fiyat | filtreetmek için maksimum fiyatı tanımlayan bir sayı. |
MinFiyat | Sansal olarak filtrelenen minimum fiyatı tanımlayan bir sayı.Varsayılan olarak, MinPrice 0 dir. |
Arama Kelimesi | Kataloğun öğe açıklamalarına karşı sorgulanabilir bir yuva. |
Sıralama Türü | Sonuçların nasıl sıralanacağını açıklayan bir Enum.CatalogSortType .Varsayılan olarak bu, Enum.CatalogSortType.Relevance olarak ayarlandı. |
Satış Dışı Olanları İçerecek | Arama sonuçlarının satış dışı öğeleri içerdiğini belirtir bir booleoid.Varsayılan olarak, bu false olarak ayarlandı. |
Yaratıcı Kimliği | Verilen bir yaratıcıyı belirtmek için bir sayı. Bir Kullanıcı Kimliği veya Bir Grubu kullanabilirsiniz. |
CreatorName | Bir veritabanında aranır. Bir yaratıcıveya bir grup ismini kullanabilirsiniz. |
Aşağıdaki kod örneği, CatalogSearchParams bir obje oluşturur ve Back ve Omuz varlık türleri için şu kadar geçer: 2> Class.AvatarEditorService:SearchCatalog()|SearchCatalog()2> çağrısının aracılığıyla:
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
Avatar'ları ve Kıyafetleri Kaydetme
Bir oyun içi avatar editori ile birlikte kullanıldığında, AvatarEditorService avatar öğelerini ve kıyafetleri Roblox platformuna kaydetip güncellemeyi sağlayabilir. Kullanıcılar, bir avatarı veya kıyafeti kaydederken sahip olmadığı katalog öğelerini almazlar.
Herhangi bir HumanoidDescription , kullanıcının mevcut avatarına kaydedilebilir ve PromptSaveAvatar() ile. Bu, şunları içerebilir:
- Mevcut katalog öğelerini kullanarak oluşturduğunuz önceden ayarlanmış avatar yapılandırmaları.
- Oyun içi bir avatar editörü aracılığıyla seçilmiş herhangi bir yapılandırma.
Görünüm AvatarEditorService:PromptSaveAvatar() yayınlanmaz, bu yüzden şu anda AvatarEditorService.PromptSaveAvatarCompleted etkinliğini dinleyerek sonucu elde edebilirsiniz.
Aşağıdaki kod, şu andaki HumanoidDescription 'i kaydedecek, kullanandoz PromptSaveAvatar() ve başarılı bir şekilde AvatarEditorService.PromptSaveAvatarCompleted etkinliğini kontrol edecek:
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
Kullanıcının mevcut avatarını üzerwrite etmeden herhangi bir HumanoidDescription kaydetmek için AvatarEditorService:PromptCreateOutfit() kullanın.
Çağrıldığında, AvatarEditorService:PromptCreateOutfit() sonucunu almak için etkinleştirme etkinliğini dinleyerek AvatarEditorService.PromptCreateOutfitCompleted olayını dinleyin.
Aşağıdaki kod örneği, AvatarEditorService:PromptCreateOutfit() ile bir kıyafet oluşturur ve başarılı bir AvatarEditorService.PromptCreateOutfitCompleted etkinliği için 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 Alma
Bir avatar veya katalog öğelerini kullanan bir kıyafet kaydederken, kullanıcının sahip olmadığı herhangi bir öğeyi almaz. Bir avatar veya kıyafet kaydetmeden önce, kullanıcının MarketplaceService:PlayerOwnsAsset() ile özelliklerine sahip olduğundan emin olun ve onlara bir öğeyi
Eğer öğe satın alımlarını uygulamak istemiyorsanız, kullanıcıların AvatarEditorService:PromptSetFavorite() ile favorilerine almayı izin verebilirsiniz.