Layanan Editor Avatar

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Layanan Editor Avatar memungkinkan Anda mengakses dan membuat perubahan pada avatar pengguna dalam sebuah permainan. Layanan Editor Avatar juga dapat mengakses inventaris pengguna dan Marketplace untuk menyimpan pakaian dan membeli item avatar ke akun pengguna.

Kami merekomendasikan untuk mengimplementasikan Layanan Editor Avatar dengan editor avatar dalam permainan untuk pengalaman kustomisasi karakter yang lengkap. Lihat contoh tempat Demo Editor Avatar Sederhana untuk contoh fitur ini.

Untuk mulai menggunakan Layanan Editor Avatar, Anda harus terlebih dahulu meminta akses ke inventaris pengguna. Setelah akses berhasil diberikan, Anda dapat melakukan tindakan berikut:

Meminta akses

Untuk mulai mengakses inventaris pengguna, Anda perlu meminta pengguna untuk mengizinkan akses melalui PromptAllowInventoryReadAccess(). Anda perlu melakukan permintaan ini sekali per sesi.

Gunakan contoh kode berikut untuk memulai prompt akses dan mendengarkan respons pengguna:


local AvatarEditorService = game:GetService("AvatarEditorService")
AvatarEditorService:PromptAllowInventoryReadAccess()
local result = AvatarEditorService.PromptAllowInventoryReadAccessCompleted:Wait()
if result == Enum.AvatarPromptResult.Success then
-- Akses diberikan!
end

Pengguna menerima prompt berikut:

Setelah pengguna menerima prompt, AvatarEditorService dapat mulai mengakses inventaris pengguna.

Baca inventaris pengguna

Setelah akses diberikan oleh pengguna, Anda dapat membaca inventaris mereka dengan fungsi GetInventory(), dengan menyediakan array AvatarAssetTypes untuk disaring. Fungsi ini mengembalikan objek InventoryPages yang berisi item yang dimiliki pengguna.

Gunakan contoh kode berikut untuk mencetak daftar aksesori tertentu dalam inventaris pengguna:


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

Cari di Marketplace

AvatarEditorService mencakup fungsi dan acara yang memungkinkan Anda mencari katalog Roblox. Untuk mencari, berikan kueri Anda dengan objek CatalogSearchParams yang mencakup satu atau lebih dari properti berikut:

PropertiDeskripsi
AssetTypesSebuah array dari Enum.AvatarAssetType seperti Enum.AvatarAssetType.BackAccessory.
BundleTypesSebuah array dari Enum.BundleType seperti Enum.BundleType.BodyParts.
CategoryFilterSebuah Enum.CatalogCategoryFilter yang menjelaskan berbagai kategori katalog seperti "Featured" atau "Community Creations". Secara default ini disetel ke Enum.CatalogCategoryFilter.None
MaxPriceSebuah integer yang menjelaskan harga maksimum untuk disaring.
MinPriceSebuah integer yang menjelaskan harga minimum untuk disaring. Secara default, MinPrice adalah 0.
SearchKeywordSebuah string untuk mengkueri deskripsi item dalam katalog.
SortTypeSebuah Enum.CatalogSortType yang menjelaskan bagaimana hasil diurutkan. Secara default ini disetel ke Enum.CatalogSortType.Relevance.
IncludeOffSaleSebuah boolean yang menjelaskan apakah hasil pencarian termasuk item yang tidak dijual. Secara default ini disetel ke false.
CreatorIdSebuah integer untuk menentukan pencipta tertentu. Anda dapat menggunakan baik UserId atau GroupId.
CreatorNameSebuah string yang digunakan untuk mencari item yang dibuat oleh pencipta tertentu. Anda dapat menggunakan baik User Name atau Group Name.

Contoh kode berikut membangun objek CatalogSearchParams untuk tipe aset Back dan Shoulder, dan meneruskannya melalui panggilan SearchCatalog():


local AvatarEditorService = game:GetService("AvatarEditorService")
local catalogSearchParams = CatalogSearchParams.new()
local assetTypes = {
Enum.AvatarAssetType.BackAccessory,
Enum.AvatarAssetType.ShoulderAccessory
}
catalogSearchParams.AssetTypes = assetTypes
local pagesObject =
--Fungsi ini mengembalikan objek CatalogPages yang berisi hasil.
AvatarEditorService:SearchCatalog(catalogSearchParams)
local currentPage = pagesObject:GetCurrentPage()
for _, item in currentPage do
print(item)
end

Simpan avatar dan pakaian

Ketika digunakan bersamaan dengan editor avatar dalam permainan, AvatarEditorService dapat menyimpan dan memperbarui item avatar dan pakaian ke platform Roblox. Pengguna tidak menerima item katalog yang tidak mereka miliki saat menyimpan avatar atau pakaian.

Setiap HumanoidDescription dapat disimpan ke avatar pengguna saat ini dengan PromptSaveAvatar(). Ini bisa termasuk:

  • Konfigurasi avatar yang telah ditentukan sebelumnya yang telah Anda buat menggunakan item katalog yang ada.
  • Setiap konfigurasi yang telah dipilih pengguna melalui editor avatar dalam permainan.

Karena AvatarEditorService:PromptSaveAvatar() tidak memberikan hasil, Anda dapat mendapatkan hasilnya dengan mendengarkan acara AvatarEditorService.PromptSaveAvatarCompleted.

Kode berikut akan menyimpan HumanoidDescription saat ini menggunakan PromptSaveAvatar() dan memeriksa keberhasilan acara AvatarEditorService.PromptSaveAvatarCompleted:


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 disimpan!
end

Untuk menyimpan setiap HumanoidDescription sebagai pakaian (tanpa menimpa avatar pengguna saat ini), gunakan AvatarEditorService:PromptCreateOutfit().

Setelah dipanggil, Anda dapat mendapatkan hasil dari AvatarEditorService:PromptCreateOutfit() dengan mendengarkan acara AvatarEditorService.PromptCreateOutfitCompleted.

Contoh kode berikut membuat pakaian dengan AvatarEditorService:PromptCreateOutfit() dan mendengarkan untuk acara keberhasilan AvatarEditorService.PromptCreateOutfitCompleted:


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
-- Pakaian disimpan!
end

Membeli item

Saat menyimpan baik avatar atau pakaian yang menggunakan item katalog, pengguna tidak menerima item yang tidak mereka miliki. Sebelum menyimpan avatar atau pakaian, periksa apakah pengguna memiliki aset dengan MarketplaceService:PlayerOwnsAsset() dan berikan mereka opsi untuk membeli item dengan MarketplaceService:PromptPurchase().

Jika Anda tidak ingin menerapkan pembelian item, Anda dapat sebaliknya membiarkan pengguna menyukai item yang tidak dimiliki dengan AvatarEditorService:PromptSetFavorite().

©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.