Avatar Düzenleyici Servisi

*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 Düzenleyici Servisi, bir oyundaki bir kullanıcının avatarına erişmenizi ve değişiklik yapmanızı sağlar. Avatar Düzenleyici Servisi, bir kullanıcının envanterine ve kullanıcının hesabına kıyafetleri kaydetmek ve avatar öğeleri satın almak için Pazar Yeri'ne de erişebilir.

Tam bir karakter özelleştirme deneyimi için Avatar Düzenleyici Servisi'ni oyun içi bir avatar düzenleyicisi ile uygulamanızı öneririz. Bu özelliğin bir örneği için Basit Avatar Düzenleyici Demo referans yerini inceleyin.

Avatar Düzenleyici Servisi'ni kullanmaya başlamak için önce kullanıcının envanterine erişim talep etmeniz gerekir. Erişim başarıyla verildikten sonra, aşağıdaki işlemleri gerçekleştirebilirsiniz:

Erişim talep etme

Bir kullanıcının envanterine erişmeye başlamak için, kullanıcıdan PromptAllowInventoryReadAccess() ile erişime izin vermesini istemeniz gerekir. Bu isteği her oturumda bir kez gerçekleştirmeniz gerekmektedir.

Erişim isteme ve kullanıcı yanıtını dinleme işlemini başlatmak 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 isteği alır:

Kullanıcı isteği kabul ettikten sonra, AvatarEditorService kullanıcının envanterine erişmeye başlayabilir.

Kullanıcı envanterini okuma

Kullanıcı erişimi sağladıktan sonra, GetInventory() işlevini kullanarak envanterlerini okuyabilirsiniz. Bu işlev, filtrelemek için bir dizi AvatarAssetTypes sağlamanızı gerektirir. 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 envanterindeki 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ğunda arama yapmanızı sağlayan işlevler ve olaylar içerir. Arama yapmak için, bir veya daha fazla aşağıdaki özelliği içeren bir CatalogSearchParams nesnesi ile sorgunuzu sağlamanız gerekir:

ÖzellikAçıklama
AssetTypesEnum.AvatarAssetType gibi bir dizi Enum.AvatarAssetType (örn. Enum.AvatarAssetType.BackAccessory).
BundleTypesEnum.BundleType gibi bir dizi Enum.BundleType (örn. Enum.BundleType.BodyParts).
CategoryFilter“Öne Çıkanlar” veya “Topluluk Yaratımları” gibi çeşitli katalog kategorilerini tanımlayan bir Enum.CatalogCategoryFilter. Varsayılan olarak bu Enum.CatalogCategoryFilter.None olarak ayarlanmıştır.
MaxPriceFiltrelemek için maksimum fiyatı tanımlayan bir tamsayı.
MinPriceFiltrelemek için minimum fiyatı tanımlayan bir tamsayı. Varsayılan olarak, MinPrice 0’dır.
SearchKeywordKatalogda bulunan öğelerin açıklamaları ile sorgulamak için kullanılan bir dize.
SortTypeSonuçların nasıl sıralandığını tanımlayan bir Enum.CatalogSortType. Varsayılan olarak bu Enum.CatalogSortType.Relevance olarak ayarlanmıştır.
IncludeOffSaleArama sonuçlarının satışı durdurulmuş öğeleri içerip içermediğini tanımlayan bir boolean. Varsayılan olarak bu false olarak ayarlanmıştır.
CreatorIdBelirli bir yaratıcıyı belirtmek için bir tamsayı. Hem UserId hem de GroupId kullanabilirsiniz.
CreatorNameBelirli bir yaratıcı tarafından oluşturulan öğeleri aramak için kullanılan bir dize. Hem Kullanıcı Adı hem de Grup Adı kullanabilirsiniz.

Aşağıdaki kod örneği, Sırt ve Omuz varlık türleri için bir CatalogSearchParams nesnesi oluşturur ve bunu SearchCatalog() çağrısına geçirir:


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 CatalogPages nesnesi döndürür.
AvatarEditorService:SearchCatalog(catalogSearchParams)
local currentPage = pagesObject:GetCurrentPage()
for _, item in currentPage do
print(item)
end

Avatar ve kıyafetleri kaydetme

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

Herhangi bir HumanoidDescription, PromptSaveAvatar() ile kullanıcının mevcut avatarına kaydedilebilir. Bu aşağıdakileri içerebilir:

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

AvatarEditorService:PromptSaveAvatar() wait etmediği için, sonucu AvatarEditorService.PromptSaveAvatarCompleted olayını dinleyerek alabilirsiniz.

Aşağıdaki kod, PromptSaveAvatar() kullanarak mevcut bir HumanoidDescription'ı kaydeder ve başarılı bir AvatarEditorService.PromptSaveAvatarCompleted olayı kontrol eder:


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ı geçersiz kılmadan herhangi bir HumanoidDescription'ı kıyafet olarak kaydetmek için AvatarEditorService:PromptCreateOutfit() kullanın.

Çağrıldıktan sonra, AvatarEditorService:PromptCreateOutfit() sonucunu AvatarEditorService.PromptCreateOutfitCompleted olayını dinleyerek alabilirsiniz.

Aşağıdaki kod örneği, AvatarEditorService:PromptCreateOutfit() ile bir kıyafet oluşturur ve başarılı bir AvatarEditorService.PromptCreateOutfitCompleted olayı 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

Öğeleri satın alma

Katalog öğeleri kullanan bir avatar veya kıyafet kaydederken, kullanıcı sahip olmadıkları hiçbir öğeyi almaz. Bir avatar veya kıyafet kaydetmeden önce, kullanıcının varlığa sahip olup olmadığını MarketplaceService:PlayerOwnsAsset() ile kontrol edin ve onlara öğeyi satın alma seçeneği sunun MarketplaceService:PromptPurchase() kullanarak.

Öğeleri satın alma işlemini uygulamak istemiyorsanız, bunun yerine kullanıcıların sahip olmadıkları öğeleri AvatarEditorService:PromptSetFavorite() ile favorilerine eklemesine izin verebilirsiniz.

©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.