AssetService

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

No creable
Servicio

AssetService es un servicio no replicado que maneja consultas relacionadas con activos a la API web de Roblox.

Resumen

Métodos

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

editableImageOptions: Dictionary

Tabla de opciones que contiene controles para el método:

  • Size – Un Vector2 que especifica el ancho y la altura deseados de la imagen.
Valor predeterminado: ""

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

editableMeshOptions: Dictionary

Tabla que contiene opciones para el creado EditableMesh .Actualmente no hay opciones disponibles ya que FixedSize siempre será false para mallas editables vacías.

Valor predeterminado: ""

Devuelve

CreateSurfaceAppearance

Parámetros

content: Dictionary
Valor predeterminado: ""

Devuelve

CreateAssetAsync

Proporciona

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

object: Object

El objeto que se creará como recurso.

Valor predeterminado: ""
assetType: Enum.AssetType

Los tipos actualmente admitidos son:

Valor predeterminado: ""
requestParameters: Dictionary

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.
  • CreatorTypeEnum.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.
  • IsPackage – Valor booleano, solo aplicable al tipo Enum.AssetType.Model. Se prefiere a true.
Valor predeterminado: "nil"

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.

AssetService:CreateAssetAsync

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

Proporciona

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

object: Object

El objeto que se creará como recurso.

Valor predeterminado: ""
assetType: Enum.AssetType

Los tipos actualmente admitidos son:

Valor predeterminado: ""
assetId: number

El ID del activo para la nueva versión.

Valor predeterminado: ""
requestParameters: Dictionary

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.
  • IsPackage – Un bool . Solo aplicable al tipo Enum.AssetType.Model. Por defecto: verdadero.
Valor predeterminado: "nil"

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.

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(`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

Proporciona

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

content: Content

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 .

Valor predeterminado: ""
editableImageOptions: Dictionary

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 .

Valor predeterminado: ""

Devuelve

Un nuevo EditableImage que contiene la imagen proporcionada.

CreateEditableMeshAsync

Proporciona

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

content: Content

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 .

Valor predeterminado: ""
editableMeshOptions: Dictionary

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.
Valor predeterminado: ""

Devuelve

La nueva instancia EditableMesh .

CreateMeshPartAsync

Proporciona

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

meshContent: Content

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 .

Valor predeterminado: ""
options: Dictionary

Tabla de opciones que contiene uno o más controles para el método:

Valor predeterminado: "nil"

Devuelve

CreatePlaceAsync

Proporciona

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

placeName: string

Nombre del nuevo lugar.

Valor predeterminado: ""
templatePlaceID: number

PlaceId de la ubicación para clonar.

Valor predeterminado: ""
description: string

Descripción del nuevo lugar.

Valor predeterminado: ""

Devuelve

PlaceId del nuevo lugar.

CreatePlaceInPlayerInventoryAsync

Proporciona

Parámetros

player: Instance
Valor predeterminado: ""
placeName: string
Valor predeterminado: ""
templatePlaceID: number
Valor predeterminado: ""
description: string
Valor predeterminado: ""

Devuelve

GetAssetIdsForPackage

Proporciona

Devuelve un array de ID de activos que se encuentran en un paquete especificado.

Parámetros

packageAssetId: number
Valor predeterminado: ""

Devuelve

ID de activos que se encuentran en un paquete especificado.

GetAudioMetadataAsync

Proporciona

Proporciona metadatos relevantes sobre una fuente de audio específica (artista, título, duración, introducir, etc.).

Parámetros

idList: Array

阵列 de ID de activo o contenido para los que recuperar metadatos. El tamaño máximo de lote es 30.

Valor predeterminado: ""

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

Proporciona

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

bundleId: number

El ID del paquete especificado.

Valor predeterminado: ""

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

Getting Bundle Details

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

Proporciona

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.

AssetService:GetGamePlacesAsync

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

Proporciona

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

player: Player

El usuario que envía la creacionesde un activo.

Valor predeterminado: ""
instance: Instance

El recurso que se creará. Actualmente no puede contener scripts o anidar recursos no públicos.

Valor predeterminado: ""
assetType: Enum.AssetType

El introducirde activo. Actualmente solo puede ser Enum.AssetType.Model .

Valor predeterminado: ""

Devuelve

El par de ID de activo y Enum.PromptCreateAssetResult si tiene éxito.

PromptImportAnimationClipFromVideoAsync

Proporciona

Parámetros

player: Player
Valor predeterminado: ""
progressCallback: function
Valor predeterminado: ""

Devuelve

SavePlaceAsync

()
Proporciona

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

Proporciona

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

searchParameters: AudioSearchParams
Valor predeterminado: ""

Devuelve

Muestras de código

This code gets the music assets returned by the keyword "happy" and prints out their titles.

Getting Music Search 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
}
}
--]]

Eventos