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 à l'aide de l'API Web de Roblox.
Résumé
Méthodes
Crée une nouvelle EditableImage .
Crée un nouveau EditableMesh vide.
Crée une nouvelle instance EditableImage remplie de l'image donnée.
Retourne une nouvelle instance EditableMesh créée à partir d'un ID de contenu de maillage existant.
Crée une nouvelle MeshPart avec un ID de maillage spécifié et une table facultative de valeurs de fidélité.
Clone un lieu à l'aide du templatePlaceID donné.
- CreatePlaceInPlayerInventoryAsync(player : Instance,placeName : string,templatePlaceID : number,description : string):number
Clone un lieu à l'aide du templatePlaceID et le met dans l'inventaire du joueur donné.
Renvoie une tableau d'identifiants de ressources qui sont incluses dans un package spécifié.
Fournit des métadonnées pertinentes sur une source audio spécifique.
Renvoie les détails du contenu du lot.
Retourne un objet StandardPages qui contient le nom et le PlaceId de lieux dans l'expérience actuelle.
Permet la création d'objets dans l'expérience pour les utilisateurs en invitant une boîte de dialogue de publication.
Enregistre l'état du emplacementactuel.
Recherche des ressources audio correspondant à une variété de critères de recherche.
Propriétés
Méthodes
CreateEditableImage
Crée une nouvelle image EditableImage . Par défaut, la résolution est réglée sur 512×512, mais vous pouvez spécifier une autre taille en utilisant la table d'option de la méthode.
Si le budget de mémoire 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 EditableMesh vide. Les verticales, les triangles et leurs attributs peuvent être ajoutés dynamiquement à lui. Si le budget de mémoire spécifique au dispositif est épuisé, la création échouera et cette méthode renverra nil .
Paramètres
Retours
CreateEditableImageAsync
Crée une nouvelle instance EditableImage remplie de la texture donnée. Les ID de texture non ressource tels que rbxthumb:// sont pris en charge. Si vous utilisez un élément de la contenu, il doit être associé et/ou possédé par un créateur de l'expérience, ou il doit avoir été créé à l'intérieur de l'expérience. Si le budget de mémoire spécif
Paramètres
Retours
Une nouvelle EditableImage contenant l'image fournie.
CreateEditableMeshAsync
Retourne une nouvelle instance EditableMesh créée à partir d'un ID de contenu de maillage existant. Par défaut, une instance EditableMesh créée à partir de cette méthode sera réduite de taille afin que les données de maillage ne puissent être modifiées, mais pas ajoutées ou supprimées. Une taille fixe EditableMesh consomme moins de mémoire et devrait être préférée lorsque
Si le budget de mémoire spécifique au dispositif est épuisé, la création échouera et cette méthode renverra nil .
Paramètres
Table d'options contenant des contrôles pour la méthode :
- FixedSize – A bool . La valeur par défaut est true , et la valeur renvoyée 0> Class.EditableMesh0> ne vous permettra pas d'ajouter ou de supprimer des vérités, mais seulement de modifier leurs valeurs. Définir à FixedSize3> si la capacité de modifier la topologie du maillage est
Retours
La nouvelle instance EditableMesh.
CreateMeshPartAsync
Cette méthode crée un MeshPart avec une spécification CollisionFidelity, Class.MeshPart.RenderFidelity|Render
Paramètres
Table d'options contenant un ou plusieurs contrôles pour la méthode :
- CollisionFidelity – La valeur de CollisionFidelity dans la partie résultante. Par défaut, Enum.CollisionFidelity.Default si l'option est absente ou la table 0> Options0> est CollisionFidelity3>.
- RenderFidelity – La valeur de RenderFidelity dans la partie résultante. Par défaut, il s'agit de Enum.RenderFidelity.Automatic si l'option est absente ou que la table 0> Options0> est nulle.
- FluidFidelity – La valeur de FluidFidelity dans la partie résultante. Par défaut, Enum.FluidFidelity.Automatic si l'option est absente ou la table 0> Options0> est FluidFidelity3>.
Retours
CreatePlaceAsync
Clone un lieu à l'aide du templatePlaceID donné et renvoie le PlaceId du nouveau emplacement, que vous pouvez utiliser avec TeleportService. Le lieu de clone s'affiche dans l'inventaire du créateur du emplacementavec le nom et la description donnés.
Remarquez que le lieu de modèle doit avoir la copie de modèle activée via les paramètres de lieu. 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, en particulier si les lieux créés contiennent des scripts, car la mise à jour du code dans un grand volume de lieux devient rapidement infeasible. Pour les mondes générés par les utilisateurs, considérez la sérialisation des créations de l'utilisateur et leur enregistrement dans DataStores au lieu de cela.
Paramètres
Nom du nouvel emplacement.
Description du nouvel emplacement.
Retours
CreatePlaceInPlayerInventoryAsync
Paramètres
Retours
GetAssetIdsForPackage
Renvoie une tableau d'identifiants de ressources qui sont incluses dans un package spécifié.
Paramètres
Retours
Les ID des ressources qui sont inclus dans un package spécifié.
GetAudioMetadataAsync
Fournit des métadonnées pertinentes sur une source audio spécifique (artiste, titre, durée, taper, etc.).
Paramètres
Tableau des ID de ressource ou de contenu pour lesquels récupérer des métadonnées. La taille maximale du lot est de 30.
Retours
Tableau des dictionnaires dans le même ordre que la demande, où chaque dictionnaire contient les métadonnées suivantes pour son contenu/ressource :
AssetId ( chaîne )
Title ( chaîne )
Artist ( chaîne )
Duration ( numéro ) dans secondes
AudioType ( Enum.AudioSubType )
Remarquez que si une erreur se produit lors de la récupération de métadonnées pour n'importe quelle 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 retourné mais elle ne contient que le AssetId champ pour les fins de référence. De plus, si le AudioType ne peut pas être déterminé pour un donjon
É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 les détails du contenu du lotspécifié.
Si l'ID du pack ne existe pas, il lance HTTP 400 (Bad Request) . Si bundleId n'est pas convertible en un nombre entier, il lance Unable to cast string to int64 .
Paramètres
L'ID du lotspécifié.
Retours
Dictionnaire avec les paires de clés suivantes contenant des détails sur le lotspécifié :
Id — ID du pack (pareil à l'argument passé bundleId)
Name — Nom du pack
Description — descriptiondu pack
BundleType — Chaîne représentant le Enum.BundleType , par exemple "BodyParts" ou 0> "DynamicHead"0>
Items — Tableau des éléments dans le lot, chacun avec des détails représentés par les clés suivantes :
Id — ID de l'article
Name — Nom de l'objet
Type — Type d'article comme . 0>.0> 3>.3> 6>.6> Type9> 0>.0> 3>>3> 6>>6> Type9> 0>>0> 3>>3> 4>>4> 7>>7> 8>>8> 0>>0> 1>>1> 2>>2> 3>>3> 4>>4> "Asset"5> 6>
É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
Retourne un objet StandardPages qui contient le nom et le PlaceId de lieux dans l'expérience actuelle.
Retours
Échantillons de code
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'objets dans l'expérience pour les utilisateurs en invitant une boîte de dialogue de publication. Lorsqu'il est appelé, il présente un dialogue à l'utilisateur, ce qui leur permet d'entrer un nom, une description et un aperçu de l'objet. Lors de l'envoi, il enregistre l'objet dans l'inventaire de l'utilisateur. Ne peut être invoqué que sur le côté du serveur.
Paramètres
L'utilisateur qui soumet une créationsd'objet.
La ressource à créer. Ne peut pas actuellement contenir de scripts ou de ressources non publiques.
Le taperde ressource. Actuellement, il ne peut être que Enum.AssetType.Model.
Retours
Le Enum.PromptCreateAssetResult et le ID de ressource si réussi.
PromptImportAnimationClipFromVideoAsync
Paramètres
Retours
SavePlaceAsync
Enregistre l'état du emplacementactuel. Ne fonctionne que pour les lieux qui sont créés avec AssetService:CreatePlaceAsync() ou qui ont l'API activée via les paramètres de lieu.
Retours
SearchAudio
Renvoie un objet AudioPages contenant le résultat de la chercherdonnée. Ne renverra pas les champs avec des valeurs vides.
Notez que cette méthode a un faible limite de requête HTTP et peut lancer une erreur, vous devriez donc toujours l'envelopper dans pcall() pour la gestion des erreurs. Les messages d'erreur possibles incluent :
<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 nul</td><td>L'argument de mot-clé a été filtré.</td></tr></tbody>
Message d'erreur | Raison |
---|
Paramètres
Retours
Échantillons de code
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
}
}
--]]