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, 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:

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 do
print(item)
end
end

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:

ÖzellikAçıklama
Varlık TürleriEnvanter.AvatarAssetType gibi bir enum.avatarassetType matrisi.
ÇeşitleriEnvanter.BodyParts gibi Enum.BundleType gibi bir matris.
Kategori FiltresiBir 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 Fiyatfiltreetmek için maksimum fiyatı tanımlayan bir sayı.
MinFiyatSansal olarak filtrelenen minimum fiyatı tanımlayan bir sayı.Varsayılan olarak, MinPrice 0 dir.
Arama KelimesiKataloğ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ı İçerecekArama sonuçlarının satış dışı öğeleri içerdiğini belirtir bir booleoid.Varsayılan olarak, bu false olarak ayarlandı.
Yaratıcı KimliğiVerilen bir yaratıcıyı belirtmek için bir sayı. Bir Kullanıcı Kimliği veya Bir Grubu kullanabilirsiniz.
CreatorNameBir 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 = 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

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.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

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.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 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.