Layanan Pengedit 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 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:

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

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:

PropinsiDeskripsi
Jenis AsetSebuah array dari Enum.AvatarAssetType seperti Enum.AvatarAssetType.BackAccessory.
Jenis BundelSebuah array dari Enum.BundleType seperti Enum.BundleType.BodyParts.
Pemfilter KategoriA Enum.CatalogCategoryFilter menjelaskan berbagai kategori katalog seperti "Featured" atau "Kreasi Komunitas". Secara default ini diatur ke Enum.CatalogCategoryFilter.None
Harga MaksimumAngka bulat yang menggambarkan harga maksimum untuk filter.
Harga MinimumSebuah bilangan bulat yang menggambarkan harga minimum untuk filter. Nilai default MinPrice adalah 0 .
Kata Kunci PencarianSebuah string untuk menanyai deskripsi item di katalog.
Jenis UrutanA Enum.CatalogSortType yang menggambarkan bagaimana hasilnya diurutkan. Nantinya ini diatur ke Enum.CatalogSortType.Relevance .
Termasuk OffSaleSebuah boolean yang menjelaskan apakah hasil pencarian termasuk item off sale. Nantinya ini diatur ke false secara default.
PembuatIdAngka bulat untuk menentukan kreatortertentu. Anda dapat menggunakan UserId atau GroupId.
Nama PenciptaSebuah 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 = 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

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