Kelas Engine
AssetService
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Rangkuman
Properti
Metode
Referensi API
Properti
Metode
ComposeDecalAsync
Memberikan nilai
()
Contoh Kode
local AssetService = game:GetService("AssetService")
-- Buat dua instance decal
local decalA = Instance.new("Decal")
local decalB = Instance.new("Decal")
-- Bangun tabel info komposit
local compositeInfo = {
{
ColorMap = decalA.ColorMapContent,
RoughnessMap = decalA.RoughnessMapContent,
MetalnessMap = decalA.MetalnessMapContent,
NormalMap = decalA.NormalMapContent,
},
{
ColorMap = Content.fromAssetId(123456),
RoughnessMap = decalB.RoughnessMapContent,
MetalnessMap = decalB.MetalnessMapContent,
NormalMap = decalB.NormalMapContent,
}
}
-- Buat decal untuk dikomposisikan
local compositeDecal = Instance.new("Decal")
-- Komposisikan decal yang ada menggunakan AssetService
local success, errorMessage = pcall(function()
AssetService:ComposeDecalAsync(compositeDecal, compositeInfo)
end)
if success then
print("Decal berhasil dikomposisikan!")
-- Logika untuk menunjukkan/menggunakan decal pergi ke sini
else
warn("Gagal untuk mengkomposisikan decal:", errorMessage)
endCreateAssetAsync
AssetService:CreateAssetAsync(
Parameter
| Nilai Default: "nil" |
Memberikan nilai
Contoh Kode
AssetService:CreateAssetAsync
local AssetService = game:GetService("AssetService")
local editableMesh = AssetService:CreateEditableMesh()
-- tambahkan vertex, wajah, dan uvs ke mesh
local requestParameters = {
CreatorId = 123,
CreatorType = Enum.AssetCreatorType.User,
Name = "Aset saya",
Description = "aset yang bagus",
}
local ok, result, idOrUploadErr = pcall(function()
return AssetService:CreateAssetAsync(editableMesh, Enum.AssetType.Mesh, requestParameters)
end)
if not ok then
warn(`kesalahan saat memanggil CreateAssetAsync: {result}`)
elseif result == Enum.CreateAssetResult.Success then
print(`berhasil, ID aset baru: {idOrUploadErr}`)
else
warn(`kesalahan unggahan di CreateAssetAsync: {result}, {idOrUploadErr}`)
endCreateAssetVersionAsync
AssetService:CreateAssetVersionAsync(
Parameter
| Nilai Default: "nil" |
Memberikan nilai
Contoh Kode
AssetService:CreateAssetVersionAsync
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(`kesalahan saat memanggil CreateAssetVersionAsync: {result}`)
elseif result == Enum.CreateAssetResult.Success then
print(`berhasil, versi aset baru: {versionOrUploadErr}`)
else
warn(`kesalahan unggah dalam CreateAssetVersionAsync: {result}, {versionOrUploadErr}`)
endCreateDataModelContentAsync
Parameter
Memberikan nilai
CreateEditableImage
Parameter
Memberikan nilai
CreateEditableImageAsync
AssetService:CreateEditableImageAsync(
Parameter
Memberikan nilai
CreateEditableMesh
Parameter
Memberikan nilai
CreateEditableMeshAsync
Parameter
Memberikan nilai
CreateMeshPartAsync
Parameter
| Nilai Default: "nil" |
Memberikan nilai
CreatePlaceAsync
CreatePlaceInPlayerInventoryAsync
CreateSurfaceAppearanceAsync
Parameter
Memberikan nilai
Contoh Kode
AssetService:CreateSurfaceAppearanceAsync
local AssetService = game:GetService("AssetService")
local Workspace = game:GetService("Workspace")
-- Warna merah
local colorEditableImage = AssetService:CreateEditableImage({ Size = Vector2.new(4, 4) })
colorEditableImage:DrawRectangle(Vector2.zero, colorEditableImage.Size, Color3.fromRGB(255, 0, 0), 0, Enum.ImageCombineType.Overwrite)
-- Metalness (hanya lihat saluran merah)
local metalnessEditableImage = AssetService:CreateEditableImage({ Size = Vector2.new(1, 1) })
metalnessEditableImage:DrawRectangle(Vector2.zero, metalnessEditableImage.Size, Color3.new(1, 0, 0), 0, Enum.ImageCombineType.Overwrite)
-- Kekasaran (hanya lihat saluran merah)
local roughnessEditableImage = AssetService:CreateEditableImage({ Size = Vector2.new(1, 1) })
roughnessEditableImage:DrawRectangle(Vector2.zero, roughnessEditableImage.Size, Color3.new(0.2, 0, 0), 0, Enum.ImageCombineType.Overwrite)
local surfaceAppearance = AssetService:CreateSurfaceAppearanceAsync({
ColorMap = Content.fromObject(colorEditableImage),
MetalnessMap = Content.fromObject(metalnessEditableImage),
RoughnessMap = Content.fromObject(roughnessEditableImage)
})
local meshPart = Instance.new("MeshPart")
meshPart.Parent = Workspace
-- Terapkan tampilan permukaan pada bagian mesh
surfaceAppearance.Parent = meshPartGetAssetIdsForPackage
GetAssetIdsForPackageAsync
GetAudioMetadataAsync
Parameter
Memberikan nilai
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, "oleh", result[i].Artist)
else
warn("Tidak ada metadata yang diambil untuk aset yang diminta #" .. tostring(i))
end
end
endGetBundleDetailsAsync
Parameter
Memberikan nilai
Contoh Kode
Mengambil Detail Bundle
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"] = "Tahun 5003, Battlebot 5000 harus menghadapi musuh terkuatnya, atau menghadapi menjadi usang.",
["Id"] = 14,
["Items"] = {
[1] = {...},
[2] = {
["Id"] = 1678225030,
["Name"] = "Lengan Kiri SinisterBot 5001",
["Type"] = "Asset"
},
[3] = {...},
[4] = {...},
[5] = {...},
[6] = {...},
[7] = {...}
},
["Name"] = "SinisterBot 5001"
}
--]]
endGetCreatorAssetID
GetGamePlacesAsync
Memberikan nilai
Contoh Kode
AssetService:GetGamePlacesAsync
local AssetService = game:GetService("AssetService")
local placePages = AssetService:GetGamePlacesAsync()
while true do
for _, place in placePages:GetCurrentPage() do
print("Nama:", place.Name)
print("PlaceId:", place.PlaceId)
end
if placePages.IsFinished then
break
end
placePages:AdvanceToNextPageAsync()
endLoadAssetAsync
PromptCreateAssetAsync
AssetService:PromptCreateAssetAsync(
Parameter
Memberikan nilai
PromptImportAnimationClipFromVideoAsync
SavePlaceAsync
Parameter
Memberikan nilai
()
SearchAudio
SearchAudioAsync
Parameter
Memberikan nilai
Contoh Kode
Mendapatkan Judul Pencarian Musik
local AssetService = game:GetService("AssetService")
local audioSearchParams = Instance.new("AudioSearchParams")
audioSearchParams.SearchKeyword = "bahagia"
local success, result = pcall(function()
return AssetService:SearchAudioAsync(audioSearchParams)
end)
if success then
local currentPage = result:GetCurrentPage()
for _, audio in currentPage do
print(audio.Title)
end
else
warn("Kesalahan AssetService: " .. result)
end
--[[ Format data yang dikembalikan
{
"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
}
}
--]]