AssetService
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
AssetService es un servicio no replicado que maneja consultas relacionadas con activos a la API web de Roblox.
Resumen
Métodos
Crea un nuevo EditableImage nuevo.
Crea un nuevo, vacío EditableMesh .
Sube un nuevo activo a Roblox desde el objeto dado.
- CreateAssetVersionAsync(object : Object,assetType : Enum.AssetType,assetId : number,requestParameters : Dictionary):Tuple
Sube una nueva versión para un activo existente desde el objeto dado.
Crea un nuevo objeto EditableImage vacío con la imagen dada.
Devuelve un nuevo objeto EditableMesh creado a partir de un ID de contenido de malla existente.
Crea un nuevo MeshPart con una ID de malla especificada y una tabla opcional de valores de fidelidad.
Clona un lugar a través del dado templatePlaceID.
- CreatePlaceInPlayerInventoryAsync(player : Instance,placeName : string,templatePlaceID : number,description : string):number
Clona un lugar a través del dado templatePlaceID y lo pone en el inventario del jugador dado.
Devuelve un array de ID de activos que se encuentran en un paquete especificado.
Proporciona metadatos relevantes sobre una de origenaudio específica.
Devuelve detalles del contenido del paquete especificado.
Devuelve un objeto StandardPages que contiene el nombre y PlaceId de lugares dentro de la experiencia actual.
Permite la creación de recursos en la experiencia para los usuarios al solicitar un diálogo de publicación.
Guarda el estado del lugar actual.
Encuentra recursos de audio que coinciden con una variedad de criterios de búsqueda.
Propiedades
Métodos
CreateEditableImage
Crea un nuevo EditableImage . Por defecto, la resolución se establece en 512×512, pero puedes especificar un tamaño diferente usando la tabla de opciones del método.
Si el presupuesto de memoria editable específico del dispositivo se agota, la creación falla y este método devuelve nil .
Parámetros
Tabla de opciones que contiene controles para el método:
- Size – Un Vector2 que especifica el ancho y la altura deseados de la imagen.
Devuelve
CreateEditableMesh
Crea un nuevo, vacío EditableMesh .Los vértices, triángulos y sus atributos se pueden agregar dinámicamente a él.Si el presupuesto de memoria editable específico del dispositivo se agota, la creación fallará y este método devolverá nil .
Parámetros
Tabla que contiene opciones para el creado EditableMesh .Actualmente no hay opciones disponibles ya que FixedSize siempre será false para mallas editables vacías.
Devuelve
CreateSurfaceAppearance
Parámetros
Devuelve
CreateAssetAsync
Sube un nuevo activo a Roblox desde el objeto dado.
Actualmente, este método solo se puede usar en plugins cargados localmente y subir recursos sin solicitarlo primero.
Parámetros
El objeto que se creará como recurso.
Los tipos actualmente admitidos son:
Tabla de opciones que contiene metadatos de activos:
- Name – Nombre del recurso como cadena. Se prefiere a [object.Name] .
- Description – Descripción del recurso como una cadena. Se prefiere a "Created with AssetService:CreateAssetAsync" .
- CreatorId - ID del creador de activos como un número.Se prefiere al usuario de Roblox Studio iniciado de sesión para el contexto de plugin.Requerido para el contexto de ejecución de Open Cloud Luau.
- CreatorType – Enum.AssetCreatorType indicando el tipo de creador de recursos.Se prefiere a Enum.AssetCreatorType.User en el contexto del plugin.Requerido para el contexto de ejecución de Open Cloud Luau.
Devuelve
El par de ID de activo y Enum.CreateAssetResult si tiene éxito.
Muestras de código
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
Sube una nueva versión para un activo existente desde el objeto dado.
Actualmente, este método solo se puede usar en plugins cargados localmente y subir recursos sin solicitarlo primero.
Parámetros
El objeto que se creará como recurso.
Los tipos actualmente admitidos son:
El ID del activo para la nueva versión.
Tabla de opciones que contiene metadatos de activos:
- Name – Un string . Nombre del recurso. Por defecto: objeto.Name.
- Description – Un string . Descripción del recurso. Por defecto: "Creado con AssetService:CreateAssetAsync".
- CreatorId – A number .ID del creador del activo.Por defecto: El usuario de Roblox Studio iniciado de sesión para el contexto de plugin.Requerido para el contexto de ejecución de Open Cloud Luau.
- CreatorType – Un Enum.AssetCreatorType . Tipo de creador de recursos. Por defecto: Enum.AssetCreatorType.User en el contexto de ejecución de Open Cloud Luau. Requerido para el contexto de ejecución de Open Cloud Luau.
Devuelve
El par de número de versión de Enum.CreateAssetResult y activo si tiene éxito.
Muestras de código
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
Crea un nuevo objeto EditableImage vacío con la textura dada.Se admiten ID de textura no asignada como rbxthumb:// .Si se utiliza un recurso de imagen, debe estar asociado y/o propiedad de un creador de la experiencia, o debe haberse creado dentro de la experiencia.Si el presupuesto de memoria editable específico del dispositivo se agota, la creación fallará y este método devolverá nil .
Consulte la documentación EditableImage para consideraciones especiales al usar esta API.
Parámetros
Referencia al contenido de activos almacenado externamente o como objeto dentro del lugar, que envuelve un solo valor de uno de los valores admitidos Enum.ContentSourceType .
Tabla que contiene opciones para el creado EditableImage . Actualmente no hay opciones disponibles ya que no se soporta el redimensionamiento a través de Size .
Devuelve
Un nuevo EditableImage que contiene la imagen proporcionada.
CreateEditableMeshAsync
Devuelve un nuevo objeto EditableMesh creado a partir de un ID existente EditableMesh o de malla Content .Por defecto, un EditableMesh creado desde este método tendrá un tamaño fijo tal que los datos de malla solo se pueden modificar, no agregar ni eliminar.Un tamaño fijo EditableMesh consume menos memoria y debe preferirse cuando sea posible.
Si el presupuesto de memoria editable específico del dispositivo se agota, la creación fallará y este método devolverá nil .
Vea las secciones Habilitación de EditableMesh para experiencias publicadas y Permisos de EditableMesh usar esta API con consideraciones especiales.
Parámetros
Referencia al contenido de activos almacenado externamente o como objeto dentro del lugar, que envuelve un solo valor de uno de los valores admitidos Enum.ContentSourceType .
Tabla de opciones que contiene controles para el método:
- FixedSize – A bool .El valor predeterminado es true , y el devuelto EditableMesh no te permitirá agregar o eliminar vértices, solo modificar sus valores.Establecer a false si se requiere la capacidad de cambiar la topología de malla, a expensas de usar más memoria.
Devuelve
La nueva instancia EditableMesh .
CreateMeshPartAsync
Este método crea un MeshPart con un CollisionFidelity especificado, RenderFidelity y FluidFidelity .Debido a que MeshPart.MeshId es solo de lectura, este método es para crear una malla con cualquier ID de malla a través de scripts, sin tener que clonar una malla existente MeshPart.Lanza errores si la creación falla.
Parámetros
Referencia al contenido de activos almacenado externamente o como objeto dentro del lugar, que envuelve un solo valor de uno de los valores admitidos Enum.ContentSourceType .
Tabla de opciones que contiene uno o más controles para el método:
- CollisionFidelity – El valor de CollisionFidelity en la parte resultante.Se prefiere a Enum.CollisionFidelity.Default si la opción está ausente o la tabla options es nil .
- RenderFidelity – El valor de RenderFidelity en la parte resultante.Se prefiere a Enum.RenderFidelity.Automatic si la opción está ausente o la tabla options es nil .
- FluidFidelity – El valor de FluidFidelity en la parte resultante.Se prefiere a Enum.FluidFidelity.Automatic si la opción está ausente o la tabla options es nil .
Devuelve
CreatePlaceAsync
Clona un lugar a través del dado templatePlaceID y devuelve el PlaceId del nuevo lugar, que puedes usar con TeleportService .El lugar de clon se muestra dentro del inventario del creador del lugar con el nombre y la descripción dados.
Tenga en cuenta que el lugar de plantilla debe tener habilitada la copia de plantilla a través de la configuración del lugar. No puede usar este método para clonar lugares que no en posesión.
No se recomienda el uso frecuente de esta API, particularmente si los lugares creados contienen scripts, ya que actualizar el código en un gran volumen de lugares se vuelve inviable rápidamente.Para los mundos generados por el usuario, considere serializar las creaciones del usuario y guardarlas en DataStores en lugar de hacerlo.
Parámetros
Nombre del nuevo lugar.
Descripción del nuevo lugar.
Devuelve
CreatePlaceInPlayerInventoryAsync
Parámetros
Devuelve
GetAssetIdsForPackage
Devuelve un array de ID de activos que se encuentran en un paquete especificado.
Parámetros
Devuelve
ID de activos que se encuentran en un paquete especificado.
GetAudioMetadataAsync
Proporciona metadatos relevantes sobre una fuente de audio específica (artista, título, duración, introducir, etc.).
Parámetros
阵列 de ID de activo o contenido para los que recuperar metadatos. El tamaño máximo de lote es 30.
Devuelve
배열 de tablas de diccionario en el mismo orden que la solicitud, donde cada diccionario contiene el siguiente metadato para su activo/contenido:
AssetId (cadena)
Title (cadena)
Artist (cadena)
Duration (número) en segundos
AudioType ( Enum.AudioSubType )
Tenga en cuenta que si ocurre un error al recuperar metadatos para cualquiera de los recursos solicitados, por ejemplo, el ID del recurso no existe, su tabla de diccionario sigue incluida en el array devuelto, pero solo contiene el campo AssetId para fines de referencia.Además, si el AudioType no se puede determinar para un activo dado (quizás porque es un sonido, audioprivado), la diccionario resultante no contendrá una entrada AudioType.
Muestras de código
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
Esta función devuelve detalles del contenido del paquete especificado.
Si el ID del paquete no existe, lanza HTTP 400 (Bad Request) . Si bundleId no es convertible a un entero, lanza Unable to cast string to int64 .
Parámetros
El ID del paquete especificado.
Devuelve
Diccionario con los siguientes pares de clave-valor que contienen detalles sobre el paquete especificado:
Id — ID de paquete (igual que el argumento pasado bundleId )
Name — Nombre del paquete
Description — descripcióndel paquete
BundleType — String que representa el Enum.BundleType , por ejemplo "BodyParts" o "DynamicHead"
Items — Array de elementos en el paquete, cada uno con detalles representados a través de las siguientes claves:
Id — ID del artículo
Name — Nombre del artículo
Type — Tipo de artículo como "Asset" .
Muestras de código
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
Devuelve un objeto StandardPages que contiene el nombre y PlaceId de lugares dentro de la experiencia actual.
Devuelve
Muestras de código
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
Permite la creación de recursos en la experiencia para los usuarios al solicitar un diálogo de publicación.Cuando se llama, presenta un diálogo al usuario, permitiéndole ingresar un nombre, descripción y previsualizar el recurso.Al enviar, se guarda el activo en el inventario del usuario.Solo se puede invocar en el lado del servidor.
Parámetros
El usuario que envía la creacionesde un activo.
El recurso que se creará. Actualmente no puede contener scripts o anidar recursos no públicos.
El introducirde activo. Actualmente solo puede ser Enum.AssetType.Model .
Devuelve
El par de ID de activo y Enum.PromptCreateAssetResult si tiene éxito.
PromptImportAnimationClipFromVideoAsync
Parámetros
Devuelve
SavePlaceAsync
Guarda el estado del lugar actual. Solo funciona para lugares que se crean con AssetService:CreatePlaceAsync() o que tienen la API habilitada a través de la configuración del lugar.
Devuelve
SearchAudio
Devuelve un objeto AudioPages que contiene el resultado de la buscardada. No devolverá campos con valores vacíos.
Tenga en cuenta que este método tiene un límite de solicitudes HTTP bajo y puede lanzar un error, por lo que siempre debe estar envuelto en pcall() para el manejo de errores.Los mensajes de error posibles incluyen:
<th>Razón</th></tr></thead><tbody><tr><td>HTTP 429 (Demasiadas solicitudes)</td><td><code>Class.AssetService:SearchAudio()</code> se ha llamado demasiadas veces.</td></tr><tr><td>Tipo inesperado para los datos, se esperaba un array nulo</td><td>Se filtró el argumento de la palabra clave.</td></tr></tbody>
Mensaje de error |
---|
Parámetros
Devuelve
Muestras de código
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
}
}
--]]