AssetService
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Layanan Aset adalah layanan non-direplikasi yang menangani pencarian terkait aset ke API web Roblox.
Rangkuman
Metode
Membuat baru EditableImage .
Membuat baru, kosong EditableMesh .
Mengunggah aset baru ke Roblox dari objek yang diberikan.
- CreateAssetVersionAsync(object : Object,assetType : Enum.AssetType,assetId : number,requestParameters : Dictionary):Tuple
Mengunggah versi baru untuk aset yang ada dari objek yang diberikan.
Membuat objek baru EditableImage dengan gambar yang diberikan.
Kembalikan objek baru EditableMesh yang dibuat dari ID konten mesh yang ada.
Membuat baru MeshPart dengan ID mesh yang ditentukan dan tabel kesetiaan opsional.
Klon tempat melalui templatePlaceID.
- CreatePlaceInPlayerInventoryAsync(player : Instance,placeName : string,templatePlaceID : number,description : string):number
Menyatukan tempat melalui yang diberikan templatePlaceID dan menempatkannya ke dalam inventaris pemain yang diberikan.
Kembalikan array ID aset yang terkandung dalam paket tertentu.
Memberikan metadata relevan tentang sumber audio tertentu.
Kembalikan rincian konten bundel yang ditentukan.
Kembalikan objek StandardPages yang berisi nama dan PlaceId tempat dalam pengalaman saat ini.
Memungkinkan penciptaan aset dalam pengalaman untuk pengguna dengan meminta dialog publikasi.
Menyimpan status tempat saat ini.
Menemukan aset audio yang cocok dengan berbagai kriteria pencarian.
Properti
Metode
CreateEditableImage
Membuat baru EditableImage . Secara default, resolusi diatur pada 512×512, tetapi Anda dapat menentukan ukuran yang berbeda menggunakan tabel opsi metode.
Jika anggaran memori yang dapat diedit khusus perangkat dihabiskan, penciptaan gagal dan metode ini kembali nil .
Parameter
Tabel opsi yang berisi kontrol untuk metode:
- Size – A Vector2 yang menentukan lebar dan ketinggian gambar yang diinginkan.
Memberikan nilai
CreateEditableMesh
Membuat baru, kosong EditableMesh .Vertiks, segi tiga, dan atribut mereka dapat ditambahkan secara dinamis ke dalamnya.Jika anggaran memori yang dapat diedit khusus perangkat dihabiskan, penciptaan akan gagal dan metode ini akan kembali nil .
Parameter
Tabel yang berisi opsi untuk dibuat EditableMesh .Saat ini tidak ada opsi yang tersedia karena FixedSize akan selalu menjadi false untuk mesh yang dapat diedit kosong.
Memberikan nilai
CreateSurfaceAppearance
Parameter
Memberikan nilai
CreateAssetAsync
Mengunggah aset baru ke Roblox dari objek yang diberikan.
Saat ini, metode ini hanya dapat digunakan di plugin yang dimuat lokal dan mengunggah aset tanpa meminta pertama.
Parameter
Objek yang akan dibuat sebagai aset.
Jenis yang saat ini didukung adalah:
Tabel opsi yang berisi metadata aset:
- Name – Nama aset sebagai string. Nilai default adalah [object.Name] .
- Description – Deskripsi aset sebagai string. Nilai default adalah "Created with AssetService:CreateAssetAsync" .
- CreatorId – ID pembuat aset sebagai angka.Default ke pengguna Roblox Studio yang masuk untuk konteks Plugin.Diperlukan untuk Konteks Eksekusi Luau Cloud Terbuka.
- CreatorType – Enum.AssetCreatorType menunjukkan jenis kreatoraset.Default ke Enum.AssetCreatorType.User di konteks Plugin.Diperlukan untuk Konteks Eksekusi Luau Cloud Terbuka.
Memberikan nilai
Pasangan ID Enum.CreateAssetResult dan aset jika berhasil.
Contoh Kode
The following code creates a Mesh asset from an EditableMesh.
local AssetService = game:GetService("AssetService")
local editableMesh = AssetService:CreateEditableMesh()
-- add vertices, faces, and uvs to the mesh
local requestParameters = {
CreatorId = 123,
CreatorType = Enum.AssetCreatorType.User,
Name = "My asset",
Description = "a good asset",
}
local ok, result, idOrUploadErr = pcall(function()
return AssetService:CreateAssetAsync(editableMesh, Enum.AssetType.Mesh, requestParameters)
end)
if not ok then
warn(`error calling CreateAssetAsync: {result}`)
elseif result == Enum.CreateAssetResult.Success then
print(`success, new asset id: {idOrUploadErr}`)
else
warn(`upload error in CreateAssetAsync: {result}, {idOrUploadErr}`)
end
CreateAssetVersionAsync
Mengunggah versi baru untuk aset yang ada dari objek yang diberikan.
Saat ini, metode ini hanya dapat digunakan di plugin yang dimuat lokal dan mengunggah aset tanpa meminta pertama.
Parameter
Objek yang akan dibuat sebagai aset.
Jenis yang saat ini didukung adalah:
ID aset untuk versi baru.
Tabel opsi yang berisi metadata aset:
- Name – A string . Nama aset. Standar: object.Name.
- Description – A string . Deskripsi aset. Standar: "Dibuat dengan AssetService:CreateAssetAsync".
- CreatorId – A number .ID kreatoraset.Default: Pengguna Roblox Studio yang masuk untuk konteks Plugin.Diperlukan untuk Konteks Eksekusi Luau Cloud Terbuka.
- CreatorType – A Enum.AssetCreatorType . Jenis kreatoraset. Standar: Enum.AssetCreatorType.User dalam konteks Plugin. Diperlukan untuk konteks Eksekusi Luau Cloud Terbuka.
Memberikan nilai
Pasangan nomor versi Enum.CreateAssetResult dan aset jika berhasil.
Contoh Kode
The following code creates a new Model asset version.
local AssetService = game:GetService("AssetService")
local assetIdToUpdate = 321
local model = Instance.new("Model")
local requestParameters = {
CreatorId = 123,
CreatorType = Enum.AssetCreatorType.User,
}
local ok, result, versionOrUploadErr = pcall(function()
return AssetService:CreateAssetVersionAsync(model, Enum.AssetType.Model, assetIdToUpdate, requestParameters)
end)
if not ok then
warn(`error calling CreateAssetVersionAsync: {result}`)
elseif result == Enum.CreateAssetResult.Success then
print(`success, new asset version: {versionOrUploadErr}`)
else
warn(`upload error in CreateAssetVersionAsync: {result}, {versionOrUploadErr}`)
end
CreateEditableImageAsync
Membuat objek baru EditableImage yang diisi dengan tekstur yang diberikan.ID tekstur non-aset seperti rbxthumb:// didukung.Jika menggunakan aset gambar, itu harus terkait dengan dan/atau dimiliki oleh pencipta pengalaman, atau harus telah dibuat di dalam pengalaman.Jika anggaran memori yang dapat diedit khusus perangkat dihabiskan, penciptaan akan gagal dan metode ini akan kembali nil .
Lihat dokumentasi EditableImage untuk pertimbangan khusus saat menggunakan API ini.
Parameter
Referensi ke konten aset yang disimpan secara eksternal atau sebagai objek di tempat, melingkupi nilai tunggal dari salah satu nilai Enum.ContentSourceType yang didukung.
Tabel yang berisi opsi untuk dibuat EditableImage . Saat ini tidak ada opsi yang tersedia karena tidak mendukung penyesuaian ulang melalui Size .
Memberikan nilai
Sebuah baru EditableImage berisi gambar yang disediakan.
CreateEditableMeshAsync
Kembalikan objek baru EditableMesh yang dibuat dari ID EditableMesh atau mesh Content yang ada.Secara default, EditableMesh yang dibuat dari metode ini akan memiliki ukuran tetap sehingga data mesh hanya dapat dimodifikasi, tidak ditambahkan atau dihapus.Ukuran tetap EditableMesh mengkonsumsi lebih sedikit memori dan harus dipilih saat mungkin.
Jika anggaran memori yang dapat diedit khusus perangkat dihabiskan, penciptaan akan gagal dan metode ini akan kembali nil .
Lihat bagian Mengaktifkan EditableMesh untuk Pengalaman Terpublikasi dan Izin dari EditableMesh untuk pertimbangan khusus saat menggunakan API ini.
Parameter
Referensi ke konten aset yang disimpan secara eksternal atau sebagai objek di tempat, melingkupi nilai tunggal dari salah satu nilai Enum.ContentSourceType yang didukung.
Tabel opsi yang berisi kontrol untuk metode:
- FixedSize – A bool .Nilai default adalah true , dan kembali EditableMesh tidak akan memungkinkan Anda untuk menambahkan atau menghapus vertiks, hanya memodifikasi nilai mereka.Atur ke false jika kemampuan untuk mengubah topologi mesh diperlukan, dengan biaya menggunakan lebih banyak memori.
Memberikan nilai
kejadianbaru EditableMesh .
CreateMeshPartAsync
Metode ini membuat MeshPart dengan CollisionFidelity yang ditentukan, RenderFidelity , dan FluidFidelity .Karena MeshPart.MeshId dibaca hanya, metode ini untuk membuat mesh dengan ID mesh apa pun melalui skrip, tanpa perlu menyalin mesh MeshPart yang ada.Ia melempar kesalahan jika penciptaan gagal.
Parameter
Referensi ke konten aset yang disimpan secara eksternal atau sebagai objek di tempat, melingkupi nilai tunggal dari salah satu nilai Enum.ContentSourceType yang didukung.
Tabel opsi yang berisi satu atau lebih kontrol untuk metode:
- CollisionFidelity – Nilai dari CollisionFidelity di bagian yang dihasilkan.Default ke Enum.CollisionFidelity.Default jika opsi hilang atau tabel options adalah nil .
- RenderFidelity – Nilai dari RenderFidelity di bagian yang dihasilkan.Default ke Enum.RenderFidelity.Automatic jika opsi hilang atau tabel options adalah nil .
- FluidFidelity – Nilai dari FluidFidelity di bagian yang dihasilkan.Default ke Enum.FluidFidelity.Automatic jika opsi hilang atau tabel options adalah nil .
Memberikan nilai
CreatePlaceAsync
Klon tempat melalui templatePlaceID yang diberikan dan kembalikan PlaceId dari tempat baru, yang dapat Anda gunakan dengan TeleportService .Tempat klon ditampilkan dalam inventaris pencipta tempat dengan nama dan deskripsi yang diberikan.
Perhatikan bahwa tempat template harus memiliki salinan templat yang diaktifkan melalui pengaturan tempat. Anda tidak dapat menggunakan metode ini untuk menyalin tempat yang tidak Anda miliki.
Penggunaan sering API ini tidak direkomendasikan, terutama jika tempat yang dibuat berisi skrip, karena memperbarui kode dalam volume besar tempat dengan cepat menjadi tidak mungkin.Untuk dunia yang dihasilkan oleh pengguna, pertimbangkan serialisasi kreasi pengguna dan menyimpannya di DataStores sebagai gantinya.
Parameter
Nama tempat baru.
Deskripsi tempat baru.
Memberikan nilai
CreatePlaceInPlayerInventoryAsync
Parameter
Memberikan nilai
GetAssetIdsForPackage
Kembalikan array ID aset yang terkandung dalam paket tertentu.
Parameter
Memberikan nilai
ID aset yang terkandung dalam paket tertentu.
GetAudioMetadataAsync
Memberikan metadata relevan tentang sumber audio tertentu (artis, judul, durasi, ketik, dll.).
Parameter
Array ID aset atau konten untuk diambil metadata. Ukuran batch maksimum adalah 30.
Memberikan nilai
Array tabel kamus dalam urutan yang sama dengan permintaan, di mana setiap kamus berisi metadata berikut untuk aset/isi kontennya:
AssetId (string)
Title (string)
Artist (string)
Duration (number) dalam detik
AudioType ( Enum.AudioSubType )
Perhatikan bahwa jika terjadi kesalahan saat mengambil metadata untuk salah satu aset yang diminta, misalnya ID aset tidak ada, tabel kamusnya masih termasuk dalam array yang dikembalikan tetapi hanya berisi bidang AssetId untuk tujuan referensi.Selain itu, jika AudioType tidak dapat ditentukan untuk aset tertentu (mungkin karena ini adalah audio pribadi), kamus yang dihasilkan tidak akan berisi entri AudioType.
Contoh Kode
local AssetService = game:GetService("AssetService")
local SoundService = game:GetService("SoundService")
local trackIDs = {
SoundService.Sound1.SoundId,
SoundService.Sound2.SoundId,
SoundService.Sound3.SoundId,
SoundService.Sound4.SoundId,
}
local success, result = pcall(function()
return AssetService:GetAudioMetadataAsync(trackIDs)
end)
if success then
for i = 1, #trackIDs do
local contentId = "rbxassetid://" .. result[i].AssetId
if trackIDs[i] == contentId then
print(result[i].Title, "by", result[i].Artist)
else
warn("No metadata fetched for requested asset #" .. tostring(i))
end
end
end
GetBundleDetailsAsync
Fungsi ini men返ikan rincian dari konten bundel yang ditentukan.
Jika ID bundel tidak ada, ia melempar HTTP 400 (Bad Request) . Jika bundleId tidak dapat diubah menjadi bilangan bulat, ia melempar Unable to cast string to int64 .
Parameter
ID bundel yang ditentukan.
Memberikan nilai
Kamus dengan pas kunci-nilai berikut yang berisi rincian tentang bundel yang ditentukan:
Id — ID bundel (sama dengan argumen yang dilewati bundleId )
Name — Nama bundel
Description - deskripsibundel
BundleType — String yang mewakili Enum.BundleType , misalnya "BodyParts" atau "DynamicHead"
Items — Array item dalam bundel, masing-masing dengan rincian yang diwakili melalui kunci berikut:
Id — ID Item
Name — Nama item
Type — Jenis item seperti "Asset" .
Contoh Kode
local AssetService = game:GetService("AssetService")
local BUNDLE_ID = 14
local success, result = pcall(function()
return AssetService:GetBundleDetailsAsync(BUNDLE_ID)
end)
if success then
print(result)
--[[
{
["BundleType"] = "BodyParts",
["Description"] = "The year is 5003, Battlebot 5000 must face his mightiest foe, or face becoming obsolete.",
["Id"] = 14,
["Items"] = {
[1] = {...},
[2] = {
["Id"] = 1678225030,
["Name"] = "SinisterBot 5001 Left Arm",
["Type"] = "Asset"
},
[3] = {...},
[4] = {...},
[5] = {...},
[6] = {...},
[7] = {...}
},
["Name"] = "SinisterBot 5001"
}
--]]
end
GetGamePlacesAsync
Kembalikan objek StandardPages yang berisi nama dan PlaceId tempat dalam pengalaman saat ini.
Memberikan nilai
Contoh Kode
The following code prints the name and PlaceId of each place in the experience.
local AssetService = game:GetService("AssetService")
local placePages = AssetService:GetGamePlacesAsync()
while true do
for _, place in placePages:GetCurrentPage() do
print("Name:", place.Name)
print("PlaceId:", place.PlaceId)
end
if placePages.IsFinished then
break
end
placePages:AdvanceToNextPageAsync()
end
PromptCreateAssetAsync
Memungkinkan penciptaan aset dalam pengalaman untuk pengguna dengan meminta dialog publikasi.Saat dipanggil, ia menampilkan dialog kepada pengguna, memungkinkan mereka untuk memasukkan nama, deskripsi, dan pratinjau aset.Setelah menyelesaikan, aset disimpan ke inventaris pengguna.Hanya dapat diaktifkan di sisi server.
Parameter
Pengguna yang mengirimkan kreasiaset.
Aset yang akan dibuat. Saat ini tidak dapat berisi skrip atau menyertakan aset non-publik.
ketikaset. Saat ini hanya bisa Enum.AssetType.Model .
Memberikan nilai
Pasangan ID Enum.PromptCreateAssetResult dan aset jika berhasil.
PromptImportAnimationClipFromVideoAsync
Parameter
Memberikan nilai
SavePlaceAsync
Menyimpan status tempat saat ini. Hanya berfungsi untuk tempat yang dibuat dengan AssetService:CreatePlaceAsync() atau yang memiliki API diaktifkan melalui pengaturan tempat.
Memberikan nilai
SearchAudio
Kembalikan objek AudioPages yang berisi hasil pencarian yang diberikan. Tidak akan mengembalikan bidang dengan nilai kosong.
Perhatikan bahwa metode ini memiliki batas permintaan HTTP rendah dan dapat menyebabkan kesalahan, sehingga harus selalu dibungkus dalam pcall() untuk penanganan kesalahan.Pesan kesalahan yang mungkin termasuk:
<th>Penyebab</th></tr></thead><tbody><tr><td>HTTP 429 (Terlalu Banyak Permintaan)</td><td><code>Class.AssetService:SearchAudio()</code> telah dipanggil terlalu banyak kali.</td></tr><tr><td>Tipe tak terduga untuk data, array yang diharapkan menjadi nol</td><td>Argumen kata kunci disaring.</td></tr></tbody>
Pesan Kesalahan |
---|
Parameter
Memberikan nilai
Contoh Kode
This code gets the music assets returned by the keyword "happy" and prints out their titles.
local AssetService = game:GetService("AssetService")
local audioSearchParams = Instance.new("AudioSearchParams")
audioSearchParams.SearchKeyword = "happy"
local success, result = pcall(function()
return AssetService:SearchAudio(audioSearchParams)
end)
if success then
local currentPage = result:GetCurrentPage()
for _, audio in currentPage do
print(audio.Title)
end
else
warn("AssetService error: " .. result)
end
--[[ Returned data format
{
"AudioType": string,
"Artist": string,
"Title": string,
"Tags": {
"string"
},
"Id": number,
"IsEndorsed": boolean,
"Description": string,
"Duration": number,
"CreateTime": string,
"UpdateTime": string,
"Creator": {
"Id": number,
"Name": string,
"Type": number,
"IsVerifiedCreator": boolean
}
}
--]]