Classe de moteur
AssetService
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Résumé
Propriétés
Méthodes
Référence API
Propriétés
Méthodes
ComposeDecalAsync
Retours
()
Échantillons de code
local AssetService = game:GetService("AssetService")
-- Créez deux instances de décalque
local decalA = Instance.new("Decal")
local decalB = Instance.new("Decal")
-- Construisez la table d'informations composite
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,
}
}
-- Créez un décalque à composer
local compositeDecal = Instance.new("Decal")
-- Composez un décalque existant en utilisant AssetService
local success, errorMessage = pcall(function()
AssetService:ComposeDecalAsync(compositeDecal, compositeInfo)
end)
if success then
print("Décalque composé avec succès!")
-- La logique pour afficher/utiliser le décalque va ici
else
warn("Échec de la composition du décalque:", errorMessage)
endCreateAssetAsync
AssetService:CreateAssetAsync(
Paramètres
| Valeur par défaut : "nil" |
Retours
Échantillons de code
AssetService:CreateAssetAsync
local AssetService = game:GetService("AssetService")
local editableMesh = AssetService:CreateEditableMesh()
-- ajouter des sommets, des faces et des uvs au maillage
local requestParameters = {
CreatorId = 123,
CreatorType = Enum.AssetCreatorType.User,
Name = "Mon actif",
Description = "un bon actif",
}
local ok, result, idOrUploadErr = pcall(function()
return AssetService:CreateAssetAsync(editableMesh, Enum.AssetType.Mesh, requestParameters)
end)
if not ok then
warn(`erreur lors de l'appel de CreateAssetAsync: {result}`)
elseif result == Enum.CreateAssetResult.Success then
print(`succès, nouvel ID d'actif: {idOrUploadErr}`)
else
warn(`erreur de téléversement dans CreateAssetAsync: {result}, {idOrUploadErr}`)
endCreateAssetVersionAsync
AssetService:CreateAssetVersionAsync(
Paramètres
| Valeur par défaut : "nil" |
Retours
Échantillons de code
AssetService:CréerVersionDActifAsync
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(`erreur lors de l'appel de CreateAssetVersionAsync: {result}`)
elseif result == Enum.CreateAssetResult.Success then
print(`succès, nouvelle version d'actif: {versionOrUploadErr}`)
else
warn(`erreur de téléchargement dans CreateAssetVersionAsync: {result}, {versionOrUploadErr}`)
endCreateDataModelContentAsync
Paramètres
Retours
CreateEditableImage
Paramètres
Retours
CreateEditableImageAsync
AssetService:CreateEditableImageAsync(
Paramètres
Retours
CreateEditableMesh
Paramètres
Retours
CreateEditableMeshAsync
Paramètres
Retours
CreateMeshPartAsync
Paramètres
| Valeur par défaut : "nil" |
Retours
CreatePlaceAsync
CreatePlaceInPlayerInventoryAsync
CreateSurfaceAppearanceAsync
Paramètres
Retours
Échantillons de code
AssetService:CreateSurfaceAppearanceAsync
local AssetService = game:GetService("AssetService")
local Workspace = game:GetService("Workspace")
-- Couleur rouge
local colorEditableImage = AssetService:CreateEditableImage({ Size = Vector2.new(4, 4) })
colorEditableImage:DrawRectangle(Vector2.zero, colorEditableImage.Size, Color3.fromRGB(255, 0, 0), 0, Enum.ImageCombineType.Overwrite)
-- Métallisme (ne regarder que le canal rouge)
local metalnessEditableImage = AssetService:CreateEditableImage({ Size = Vector2.new(1, 1) })
metalnessEditableImage:DrawRectangle(Vector2.zero, metalnessEditableImage.Size, Color3.new(1, 0, 0), 0, Enum.ImageCombineType.Overwrite)
-- Rugosité (ne regarder que le canal rouge)
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
-- Appliquer l'apparence de surface au MeshPart
surfaceAppearance.Parent = meshPartGetAssetIdsForPackage
GetAssetIdsForPackageAsync
GetAudioMetadataAsync
Paramètres
Retours
Échantillons de code
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, "par", result[i].Artist)
else
warn("Aucune métadonnée récupérée pour l'actif demandé #" .. tostring(i))
end
end
endGetBundleDetailsAsync
Paramètres
Retours
Échantillons de code
Obtention des détails du pack
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"] = "L'année est 5003, Battlebot 5000 doit affronter son ennemi le plus redoutable, ou risque de devenir obsolète.",
["Id"] = 14,
["Items"] = {
[1] = {...},
[2] = {
["Id"] = 1678225030,
["Name"] = "SinisterBot 5001 Bras Gauche",
["Type"] = "Asset"
},
[3] = {...},
[4] = {...},
[5] = {...},
[6] = {...},
[7] = {...}
},
["Name"] = "SinisterBot 5001"
}
--]]
endGetCreatorAssetID
GetGamePlacesAsync
Retours
Échantillons de code
AssetService:GetGamePlacesAsync
local AssetService = game:GetService("AssetService")
local placePages = AssetService:GetGamePlacesAsync()
while true do
for _, place in placePages:GetCurrentPage() do
print("Nom:", place.Name)
print("PlaceId:", place.PlaceId)
end
if placePages.IsFinished then
break
end
placePages:AdvanceToNextPageAsync()
endLoadAssetAsync
PromptCreateAssetAsync
AssetService:PromptCreateAssetAsync(
Paramètres
Retours
PromptImportAnimationClipFromVideoAsync
SavePlaceAsync
Paramètres
Retours
()
SearchAudio
SearchAudioAsync
Paramètres
Retours
Échantillons de code
Obtention des titres de recherche musicale
local AssetService = game:GetService("AssetService")
local audioSearchParams = Instance.new("AudioSearchParams")
audioSearchParams.SearchKeyword = "joyeux"
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("Erreur AssetService : " .. result)
end
--[[ Format des données retournées
{
"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
}
}
--]]