AssetService
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
AssetService est un service non répliqué qui gère les requêtes liées aux ressources vers l'API Web Roblox.
Résumé
Méthodes
Crée un nouveau EditableImage .
Crée un nouveau, vide EditableMesh.
Télécharge une nouvelle ressource sur Roblox à partir de l'objet donné.
- CreateAssetVersionAsync(object : Object,assetType : Enum.AssetType,assetId : number,requestParameters : Dictionary):Tuple
Télécharge une nouvelle version pour une ressource existante à partir de l'objet donné.
Crée un nouvel objet EditableImage vierge de l'image donnée.
Renvoie un nouvel objet EditableMesh créé à partir d'un ID de contenu de maillage existant.
Crée un nouveau MeshPart avec un ID de maillage spécifié et une table facultative de valeurs de fidélité.
Clone un lieu à travers le templatePlaceID.
- CreatePlaceInPlayerInventoryAsync(player : Instance,placeName : string,templatePlaceID : number,description : string):number
Clone un lieu à travers le templatePlaceID et le met dans l'inventaire du joueur donné.
Renvoie une série d'ID de ressources contenues dans un paquet spécifié.
Fournit des métadonnées pertinentes sur une source audio spécifique.
Renvoie les détails du contenu du lotspécifié.
Renvoie un objet StandardPages qui contient le nom et PlaceId les lieux à l'intérieur de l'expérience actuelle.
Permet la création d'actifs en expérience pour les utilisateurs en leur demandant de lancer un dialogue de publication.
Enregistre l'état de l'emplacementactuel.
Trouve des ressources audio correspondant à une variété de critères de recherche.
Propriétés
Méthodes
CreateEditableImage
Crée un nouveau EditableImage . Par défaut, la résolution est définie à 512×512, mais vous pouvez spécifier une taille différente en utilisant la table d'options de la méthode.
Si le budget de mémoire modifiable spécifique au dispositif est épuisé, la création échoue et cette méthode renvoie nil .
Paramètres
Table d'options contenant des contrôles pour la méthode :
- Size – Un Vector2 qui spécifie la largeur et la hauteur souhaitées de l'image.
Retours
CreateEditableMesh
Crée un nouveau, vide EditableMesh.Les vertex, triangles et leurs attributs peuvent être ajoutés dynamiquement à elle.Si le budget de mémoire modifiable spécifique au dispositif est épuisé, la création échouera et cette méthode renverra nil .
Paramètres
Table contenant des options pour le créé EditableMesh .Actuellement, aucune option n'est disponible puisque FixedSize sera toujours false pour les mailles éditables vides.
Retours
CreateSurfaceAppearance
Paramètres
Retours
CreateAssetAsync
Télécharge une nouvelle ressource sur Roblox à partir de l'objet donné.
Actuellement, cette méthode ne peut être utilisée que dans les plugins locaux chargés et télécharger des ressources sans demander d'abord.
Paramètres
L'objet à créer en tant que contenu.
Les types actuellement pris en charge sont :
Table d'options contenant des métadonnées de ressources :
- Name – Nom de la ressource en tant que chaîne. Défaut à [object.Name] .
- Description – Description de la ressource en tant que chaîne. Défaut à "Created with AssetService:CreateAssetAsync" .
- CreatorId – ID du créateur de ressources comme un nombre.Par défaut pour l'utilisateur de Roblox Studio connecté pour le contexte des plugins.Nécessaire pour le contexte d'exécution Open Cloud Luau.
- CreatorType – Enum.AssetCreatorType indiquant le type de créateur de ressources.Par défaut à Enum.AssetCreatorType.User dans le contexte du plugin.Nécessaire pour le contexte d'exécution Open Cloud Luau.
- IsPackage – Valeur booléenne, applicable uniquement au taperEnum.AssetType.Model . Par défaut à true .
Retours
Le paire d'ID de ressource et de Enum.CreateAssetResult si réussi.
Échantillons de code
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
Télécharge une nouvelle version pour une ressource existante à partir de l'objet donné.
Actuellement, cette méthode ne peut être utilisée que dans les plugins locaux chargés et télécharger des ressources sans demander d'abord.
Paramètres
L'objet à créer en tant que contenu.
Les types actuellement pris en charge sont :
L'ID de la ressource pour la nouvelle version.
Table d'options contenant des métadonnées de ressources :
- Name – Un string . Nom de la contenu. Par défaut : objet.Name.
- Description – A string . Description de la contenu. Par défaut : "Créé avec AssetService:CreateAssetAsync".
- CreatorId – A number .ID du créateur de la ressource.Par défaut : l'utilisateur de Roblox Studio connecté pour le contexte des plugins.Nécessaire pour le contexte d'exécution Open Cloud Luau.
- CreatorType – A Enum.AssetCreatorType . Type de créateur de ressources. Par défaut : Enum.AssetCreatorType.User dans le contexte Plugin. Nécessaire pour le contexte d'exécution Open Cloud Luau.
Retours
Le paire de numéro de version des ressources et de la version du succès Enum.CreateAssetResult.
Échantillons de code
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
Crée un nouvel objet EditableImage vierge de texture donnée.Les ID de texture non affectées comme rbxthumb:// sont pris en charge.Si vous utilisez une contenud'image, elle doit être associée et/ou appartenir à un créateur de l'expérience, ou elle doit avoir été créée à l'intérieur de l'expérience.Si le budget de mémoire modifiable spécifique au dispositif est épuisé, la création échouera et cette méthode renverra nil .
Voir la documentation EditableImage pour des considérations spéciales lors de l'utilisation de cette API.
Paramètres
Référence au contenu des ressources stockées externement ou en tant qu'objet dans l'emplacement, enveloppant une seule valeur d'une des valeurs Enum.ContentSourceType soutenues.
Table contenant des options pour le créé EditableImage . Actuellement, aucune option n'est disponible puisque la redimensionnalisation via Size n'est pas prise en charge.
Retours
Un nouveau EditableImage contenant l'image fournie.
CreateEditableMeshAsync
Renvoie un nouvel objet EditableMesh créé à partir d'un ID existant EditableMesh ou d'un maillage Content existant.Par défaut, un EditableMesh créé à partir de cette méthode sera de taille fixe afin que les données de maillage ne puissent être modifiées, ajoutées ni supprimées.Une taille fixe EditableMesh consomme moins de mémoire et devrait être préférée lorsque cela est possible.
Si le budget de mémoire modifiable spécifique au dispositif est épuisé, la création échouera et cette méthode renverra nil .
Voir les sections Activation de EditableMesh pour les expériences publiées et Permissions de pour des considérations spéciales lors de l'utilisation de cette API.
Paramètres
Référence au contenu des ressources stockées externement ou en tant qu'objet dans l'emplacement, enveloppant une seule valeur d'une des valeurs Enum.ContentSourceType soutenues.
Table d'options contenant des contrôles pour la méthode :
- FixedSize – A bool .La valeur par défaut est true , et le retourné EditableMesh ne vous permettra pas d'ajouter ou de supprimer des sommets, seulement de modifier leurs valeurs.Définir à false si la capacité de changer la topologie du maillage est requise, au détriment de l'utilisation de plus de mémoire.
Retours
La nouvelle instance EditableMesh.
CreateMeshPartAsync
Cette méthode crée un MeshPart avec un CollisionFidelity spécifié, RenderFidelity et FluidFidelity .Comme MeshPart.MeshId est lu seul, cette méthode est pour créer un maillage avec n'importe quel ID de maillage via des scripts, sans avoir à cloner un maillage existant MeshPart.Il lance des erreurs si la création échoue.
Paramètres
Référence au contenu des ressources stockées externement ou en tant qu'objet dans l'emplacement, enveloppant une seule valeur d'une des valeurs Enum.ContentSourceType soutenues.
Table d'options contenant une ou plusieurs contrôles pour la méthode :
- CollisionFidelity – La valeur de CollisionFidelity dans la partie résultante.Défaut à Enum.CollisionFidelity.Default si l'option est absente ou si la table options est nil .
- RenderFidelity – La valeur de RenderFidelity dans la partie résultante.Défaut à Enum.RenderFidelity.Automatic si l'option est absente ou si la table options est nil .
- FluidFidelity – La valeur de FluidFidelity dans la partie résultante.Défaut à Enum.FluidFidelity.Automatic si l'option est absente ou si la table options est nil .
Retours
CreatePlaceAsync
Clone un lieu via le templatePlaceID donné et renvoie le PlaceId du nouvel endroit, que vous pouvez utiliser avec TeleportService.L'emplacement de clone s'affiche dans l'inventaire du créateur du lieu avec le nom et la description donnés.
Notez que l'emplacement du modèle doit avoir activé la copie de modèle via les paramètres d'emplacement. Vous ne pouvez pas utiliser cette méthode pour cloner des lieux que vous ne posséderpas.
L'utilisation fréquente de cette API n'est pas recommandée, notamment si les endroits créés contiennent des scripts, car mettre à jour le code dans un grand volume d'endroits devient rapidement impossible.Pour les mondes générés par l'utilisateur, envisagez de sérialiser les créations de l'utilisateur et de les enregistrer dans DataStores à la place.
Paramètres
Nom du nouvel emplacement.
Description du nouvel emplacement.
Retours
CreatePlaceInPlayerInventoryAsync
Paramètres
Retours
GetAssetIdsForPackage
Renvoie une série d'ID de ressources contenues dans un paquet spécifié.
Paramètres
Retours
ID de ressources contenues dans un paquet spécifié.
GetAudioMetadataAsync
Fournit des métadonnées pertinentes sur une source audio spécifique (artiste, titre, durée, taper, etc.).
Paramètres
Liste d'ID de ressources ou de contenu pour lesquelles récupérer des métadonnées. La taille maximale du lot est de 30.
Retours
Tableau d'association de dictionnaires dans le même ordre que la demande, où chaque dictionnaire contient les métadonnées suivantes pour son actif/contenu :
AssetId (chaîne)
Title (chaîne)
Artist (chaîne)
Duration (number) en secondes
AudioType ( Enum.AudioSubType )
Notez que si une erreur se produit lors de la récupération des métadonnées pour l'une des ressources demandées, par exemple l'ID de la ressource n'existe pas, sa table de dictionnaire est toujours incluse dans l'arrêt de l'array retourné, mais elle ne contient que le champ AssetId pour des fins de référence.De plus, si le AudioType ne peut pas être déterminé pour une ressource donnée (peut-être parce que c'est un audio privé), l'entrée du dictionnaire résultant ne contiendra pas d'élément AudioType.
É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, "by", result[i].Artist)
else
warn("No metadata fetched for requested asset #" .. tostring(i))
end
end
end
GetBundleDetailsAsync
Cette fonction renvoie des détails du contenu du lotspécifié.
Si l'ID du paquet n'existe pas, il lance HTTP 400 (Bad Request) . Si bundleId n'est pas convertible en entier, il lance Unable to cast string to int64 .
Paramètres
L'ID du lotspécifié.
Retours
Dictionnaire avec les paires clé-valeur suivantes contenant des détails sur le lotspécifié :
Id — ID du paquet (même que l'argument passer bundleId )
Name — Nom du paquet
Description — descriptiondu paquet
BundleType — Chaîne représentant le Enum.BundleType , par exemple "BodyParts" ou "DynamicHead"
Items — Array d'éléments dans le lot, chacun avec des détails représentés par les clés suivantes :
Id — ID de l'article
Name — Noms de l'article
Type — Type d'objet tel que "Asset".
Échantillons de code
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
Renvoie un objet StandardPages qui contient le nom et PlaceId les lieux à l'intérieur de l'expérience actuelle.
Retours
Échantillons de code
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
Permet la création d'actifs en expérience pour les utilisateurs en leur demandant de lancer un dialogue de publication.Lorsqu'il est appelé, il présente un dialogue à l'utilisateur, lui permettant d'entrer un nom, une description et de prévisualiser la contenu.Lors de la soumission, il enregistre la ressource dans l'inventaire de l'utilisateur.Ne peut être invoqué que du côté du serveur.
Paramètres
L'utilisateur qui soumet la créationsd'une ressource.
La ressource à créer. Ne peut pas, actuellement, contenir de scripts ou de nester des ressources non publiques.
Le taperressource. Actuellement, il ne peut être que Enum.AssetType.Model .
Retours
Le paire d'ID de ressource et de Enum.PromptCreateAssetResult si réussi.
PromptImportAnimationClipFromVideoAsync
Paramètres
Retours
SavePlaceAsync
Enregistre l'état de l'emplacementactuel. Fonctionne uniquement pour les endroits créés avec AssetService:CreatePlaceAsync() ou qui ont l'API activée via les paramètres d'endroit.
Retours
SearchAudio
Renvoie un objet AudioPages contenant le résultat de la chercherdonnée. Ne retournera pas de champs avec des valeurs vides.
Notez que cette méthode a une faible limite de demande HTTP et peut générer une erreur, il doit donc toujours être emballé dans pcall() pour la gestion des erreurs.Les messages d'erreur possibles incluent :
<th>Raison</th></tr></thead><tbody><tr><td>HTTP 429 (Trop de demandes)</td><td><code>Class.AssetService:SearchAudio()</code> a été appelé trop de fois.</td></tr><tr><td>Type inattendu pour les données, tableau attendu null obtenu</td><td>L'argument clé a été filtré.</td></tr></tbody>
Message d'erreur |
---|
Paramètres
Retours
Échantillons de code
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
}
}
--]]