Layanan Editor Avatar memungkinkan Anda mengakses dan membuat perubahan pada avatar pengguna dalam pengalaman.Layanan Editor Avatar juga dapat mengakses inventaris pengguna dan Pasar untuk menyimpan pakaian dan membeli item avatar ke akun pengguna.
Kami merekomendasikan menerapkan Layanan Editor Avatar dengan editor avatar dalam game untuk pengalaman kustomisasi karakter lengkap.Lihat tempat referensi 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 diberikan dengan sukses, Anda dapat melakukan tindakan berikut:
- Baca inventaris pengguna untuk mendapatkan daftar item yang dimiliki oleh pengguna.
- Cari Pasar , menggunakan berbagai properti untuk disaring dan urutkan.
- Lengkapi item avatar dan simpan pakaian ke avatar pengguna ke avatar pengguna.
Minta 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 perintah berikut:

Setelah pengguna menerima perintah, AvatarEditorService bisa mulai mengakses inventaris pengguna.
Membaca inventaris pengguna
Setelah akses diberikan oleh pengguna, Anda dapat membaca inventaris mereka dengan fungsi GetInventory(), yang menyediakan array AvatarAssetTypes untuk disaring.Fungsi ini mengembalikan objek InventoryPages yang berisi item milik pengguna.
Gunakan contoh kode berikut untuk mencetak daftar aksesori spesifik di 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 doprint(item)endend
Cari Pasar
AvatarEditorService termasuk fungsi dan peristiwa yang memungkinkan Anda mencari katalog Roblox.Untuk mencari, berikan pertanyaan Anda dengan objek CatalogSearchParams yang memiliki satu atau lebih dari properti berikut:
Propinsi | Deskripsi |
---|---|
Jenis Aset | Sebuah array dari Enum.AvatarAssetType seperti Enum.AvatarAssetType.BackAccessory. |
Jenis Bundel | Sebuah array dari Enum.BundleType seperti Enum.BundleType.BodyParts. |
Pemfilter Kategori | A Enum.CatalogCategoryFilter menjelaskan berbagai kategori katalog seperti "Featured" atau "Kreasi Komunitas". Secara default ini diatur ke Enum.CatalogCategoryFilter.None |
Harga Maksimum | Angka bulat yang menggambarkan harga maksimum untuk filter. |
Harga Minimum | Sebuah bilangan bulat yang menggambarkan harga minimum untuk filter. Nilai default MinPrice adalah 0 . |
Kata Kunci Pencarian | Sebuah string untuk menanyai deskripsi item di katalog. |
Jenis Urutan | A Enum.CatalogSortType yang menggambarkan bagaimana hasilnya diurutkan. Nantinya ini diatur ke Enum.CatalogSortType.Relevance . |
Termasuk OffSale | Sebuah boolean yang menjelaskan apakah hasil pencarian termasuk item off sale. Nantinya ini diatur ke false secara default. |
PembuatId | Angka bulat untuk menentukan kreatortertentu. Anda dapat menggunakan UserId atau GroupId. |
Nama Pencipta | Sebuah string yang digunakan untuk mencari oleh item yang dibuat oleh kreatortertentu. Anda dapat menggunakan Nama Pengguna atau Nama Grup. |
Sampel kode berikut membangun objek CatalogSearchParams untuk Kembali dan jenis aset Bahu , dan melewati itu melalui panggilan SearchCatalog():
local AvatarEditorService = game:GetService("AvatarEditorService")local catalogSearchParams = CatalogSearchParams.new()local assetTypes = {Enum.AvatarAssetType.BackAccessory,Enum.AvatarAssetType.ShoulderAccessory}catalogSearchParams.AssetTypes = assetTypeslocal pagesObject =--Fungsi ini mengembalikan objek CatalogPages yang berisi hasil.AvatarEditorService:SearchCatalog(catalogSearchParams)local currentPage = pagesObject:GetCurrentPage()for _, item in currentPage doprint(item)end
Simpan avatar dan pakaian
Saat digunakan bersama editor avatar dalam game, AvatarEditorService dapat menyimpan dan memperbarui item dan pakaian avatar ke platform Roblox.Pengguna tidak menerima item katalog yang tidak mereka miliki saat menyimpan avatar atau pakaian.
Setiap HumanoidDescription dapat disimpan ke avatar saat ini pengguna dengan PromptSaveAvatar() . Ini dapat termasuk:
- Konfigurasi avatar pra-ditentukan yang telah Anda buat menggunakan item katalog yang ada.
- Konfigurasi apa pun yang dipilih pengguna melalui editor avatar dalam game.

Karena AvatarEditorService:PromptSaveAvatar() tidak menghasilkan, Anda dapat mendapatkan hasilnya dengan mendengarkan acara AvatarEditorService.PromptSaveAvatarCompleted.
Kode berikut akan menyimpan HumanoidDescription saat ini menggunakan PromptSaveAvatar() dan memeriksa acara berhasil AvatarEditorService.PromptSaveAvatarCompleted:
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 disimpan!end
Untuk menyimpan apa pun HumanoidDescription sebagai pakaian (tanpa menghapus avatar saat ini pengguna), 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 acara berhasil AvatarEditorService.PromptCreateOutfitCompleted:
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-- Perlengkapan disimpan!end
Membeli item
Saat menyimpan avatar atau pakaian yang menggunakan item katalog, pengguna tidak menerima item apa pun yang tidak dimiliki.Sebelum menyimpan avatar atau pakaian, periksa apakah pengguna memiliki aset dengan MarketplaceService:PlayerOwnsAsset() dan memberi mereka pilihan untuk membeli item dengan MarketplaceService:PromptPurchase() .
Jika Anda tidak ingin menerapkan pembelian item, Anda dapat mengizinkan pengguna untuk menyukai item non-milik dengan AvatarEditorService:PromptSetFavorite() .