AssetService
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
Serviço de Recursos é um serviço não replicado que lida com consultas relacionadas a recursos na API (Interface de Programação para Aplicações)da web Roblox.
Resumo
Métodos
Cria um novo EditableImage .
Cria um novo, vazio EditableMesh.
Carrega um novo recurso no Roblox a partir do Objetodado.
- CreateAssetVersionAsync(object : Object,assetType : Enum.AssetType,assetId : number,requestParameters : Dictionary):Tuple
Carrega uma nova versão para um recurso existente a partir do Objetodado.
Cria um novo objeto EditableImage vazio com a imagem fornecida.
Retorna um novo objeto EditableMesh criado a partir de um ID de conteúdo de malha existente.
Cria um novo MeshPart com um ID de malha especificado e uma tabela opcional de valores de fidelidade.
Clona um local através do dado templatePlaceID.
- CreatePlaceInPlayerInventoryAsync(player : Instance,placeName : string,templatePlaceID : number,description : string):number
Clona um local através do dado templatePlaceID e coloca-o no inventário do jogador dado.
Retorna um conjunto de IDs de recursos que estão contidos em um pacote especificado.
Fornece metadados relevantes sobre uma originalde áudio específica.
Retorna detalhes do conteúdo do pacote especificado.
Retorna um objeto StandardPages que contém o nome e PlaceId de locais dentro da experiência atual.
Permite a criação de recursos na experiência para usuários solicitando um diálogo de publicação.
Salva o estado do local atual.
Encontra recursos de áudio que correspondem a uma variedade de critérios de busca.
Propriedades
Métodos
CreateEditableImage
Cria um novo EditableImage . Por padrão, a resolução é definida em 512×512, mas você pode especificar um tamanho diferente usando a tabela de opções do método.
Se o orçamento de memória editável específico do dispositivo for exaurido, a criação falha e este método retorna nil .
Parâmetros
Tabela de opções que contém controles para o método:
- Size – Um Vector2 que especifica a largura e a altura desejadas da imagem.
Devolução
CreateEditableMesh
Cria um novo, vazio EditableMesh.Vérteces, triângulos e seus atributos podem ser adicionados dinamicamente a ele.Se o orçamento de memória editável específico do dispositivo for esgotado, a criação falhará e este método retornará nil .
Parâmetros
Tabela que contém opções para o criado EditableMesh .Atualmente, não há opções disponíveis desde que FixedSize sempre será false para malhas editáveis vazias.
Devolução
CreateSurfaceAppearance
Parâmetros
Devolução
CreateAssetAsync
Carrega um novo recurso no Roblox a partir do Objetodado.
Atualmente, esse método só pode ser usado em plugins locamente carregados e carregar recursos sem solicitar primeiro.
Parâmetros
O objeto a ser criado como um ativo.
Tipos atualmente suportados são:
Tabela de opções que contém metadados de recursos:
- Name – Nome do recurso como uma string / cadeia / texto. Padrão para [object.Name] .
- Description – Descrição do recurso como uma string / cadeia / texto. Padrão para "Created with AssetService:CreateAssetAsync" .
- CreatorId – ID do criador de recursos como um número.Padrão para o usuário do Roblox Studio logado para o contexto do Plugin.Requerido para o contexto de execução do Open Cloud Luau.
- CreatorType – Enum.AssetCreatorType indicando o tipo de criador de recursos.Padrão para Enum.AssetCreatorType.User no contexto do Plugin.Requerido para o contexto de execução do Open Cloud Luau.
Devolução
O par de ID de recurso e ID de recurso se Enum.CreateAssetResult for bem-sucedido.
Amostras 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
Carrega uma nova versão para um recurso existente a partir do Objetodado.
Atualmente, esse método só pode ser usado em plugins locamente carregados e carregar recursos sem solicitar primeiro.
Parâmetros
O objeto a ser criado como um ativo.
Tipos atualmente suportados são:
O ID do recurso para a nova versão.
Tabela de opções que contém metadados de recursos:
- Name – Um string . Nome do ativo. Padrão: Objeto.Name.
- Description – A string . Descrição do ativo. Padrão: "Criado com o Serviço de Recursos: Criar RecursoAsync".
- CreatorId – A number .ID do criador do recurso.Padrão: O usuário do Roblox Studio logado para o contexto do Plugin.Requerido para o contexto de execução do Open Cloud Luau.
- CreatorType – Um Enum.AssetCreatorType . Tipo de criador de recursos. Padrão: Enum.AssetCreatorType.User no contexto do Plugin. Necessário para o contexto de execução do Open Cloud Luau.
Devolução
O par de número de versão de Enum.CreateAssetResult e recurso se for bem-sucedido.
Amostras 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
Cria um novo objeto EditableImage vazio com a textura fornecida.IDs de textura não ativos, como rbxthumb://, são suportados.Se usar um recurso de imagem, deve estar associado e/ou pertencente a um criador da experiência, ou deve ter sido criado dentro da experiência.Se o orçamento de memória editável específico do dispositivo for exaurido, a criação falhará e este método retornará nil .
Veja a documentação EditableImage para considerações especiais ao usar essa API (Interface de Programação para Aplicações).
Parâmetros
Referência ao conteúdo de recursos armazenados externamente ou como um objeto dentro do local, envolvendo um único valor de um dos valores suportados Enum.ContentSourceType .
Tabela que contém opções para o criado EditableImage . Atualmente, não há opções disponíveis, pois o redimensionamento via Size não é suportado.
Devolução
Um novo EditableImage contendo a imagem fornecida.
CreateEditableMeshAsync
Retorna um novo objeto EditableMesh criado a partir de um ID existente EditableMesh ou de uma malha Content existente.Por padrão, um EditableMesh criado a partir deste método será de tamanho fixo, de modo que os dados de malha só podem ser modificados, não adicionados ou removidos.Um tamanho fixo EditableMesh consome menos memória e deve ser preferido quando possível.
Se o orçamento de memória editável específico do dispositivo for exaurido, a criação falhará e este método retornará nil .
Veja as seções Ativando EditableMesh para Experiências Publicadas e Permissões de EditableMesh usar esta API (Interface de Programação para Aplicações)com considerações especiais.
Parâmetros
Referência ao conteúdo de recursos armazenados externamente ou como um objeto dentro do local, envolvendo um único valor de um dos valores suportados Enum.ContentSourceType .
Tabela de opções que contém controles para o método:
- FixedSize – A bool .O valor padrão é true , e o retornado EditableMesh não permitirá que você adicione ou remova vértices, apenas modifique seus valores.Defina para false se a capacidade de alterar a topologia do mesh for necessária, a expensas de usar mais memória.
Devolução
A nova instância EditableMesh .
CreateMeshPartAsync
Este método cria um MeshPart com um CollisionFidelity especificado, RenderFidelity e FluidFidelity.Como MeshPart.MeshId é apenas de leitura, este método é para criar uma malha com qualquer ID de malha através de scripts, sem ter que clonar uma malha existente MeshPart.Ela lança erros se a criação falhar.
Parâmetros
Referência ao conteúdo de recursos armazenados externamente ou como um objeto dentro do local, envolvendo um único valor de um dos valores suportados Enum.ContentSourceType .
Tabela de opções que contém um ou mais controles para o método:
- CollisionFidelity – O valor de CollisionFidelity na parte resultante.Padrão para Enum.CollisionFidelity.Default se a opção estiver ausente ou a tabela options for nil.
- RenderFidelity – O valor de RenderFidelity na parte resultante.Padrão para Enum.RenderFidelity.Automatic se a opção estiver ausente ou a tabela options for nil.
- FluidFidelity – O valor de FluidFidelity na parte resultante.Padrão para Enum.FluidFidelity.Automatic se a opção estiver ausente ou a tabela options for nil.
Devolução
CreatePlaceAsync
Clona um local através do dado templatePlaceID e retorna o PlaceId do novo local, que você pode usar com TeleportService.O local de clonagem é exibido no inventário do criador do local com o nome e a descrição dados.
Observe que o local do modelo deve ter cópia de modelo habilitada através das configurações do local. Você não pode usar esse método para clonar locais que você não possuir.
Não é recomendado o uso frequente dessa API, especialmente se os locais criados contiverem scripts, pois atualizar o código em um grande volume de locais se torna rapidamente inviável.Para mundos gerados pelo usuário, considere serializar criações do usuário e salvá-las em DataStores em vez disso.
Parâmetros
Nome do novo local.
Descrição do novo local.
Devolução
CreatePlaceInPlayerInventoryAsync
Parâmetros
Devolução
GetAssetIdsForPackage
Retorna um conjunto de IDs de recursos que estão contidos em um pacote especificado.
Parâmetros
Devolução
IDs de recursos que estão contidos em um pacote especificado.
GetAudioMetadataAsync
Fornece metadados relevantes sobre uma fonte de áudio específica (artista, título, duração, digitar, etc.).
Parâmetros
Array de IDs de recurso ou conteúdo para os quais recuperar metadados. O tamanho máximo do lote é 30.
Devolução
Array de tabelas de dicionário na mesma ordem que a solicitar / pedir, onde cada dicionário contém o seguinte metadado para seu ativo/conteúdo:
AssetId (string / cadeia / texto)
Title (string / cadeia / texto)
Artist (string / cadeia / texto)
Duration (number) em segundos
AudioType ( Enum.AudioSubType )
Observe que, se ocorrer um erro ao obter metadados para qualquer um dos recursos solicitados, por exemplo, o ID do recurso não existe, sua tabela dicionária ainda é incluída no array retornado, mas contém apenas o campo AssetId para fins de referência.Além disso, se o AudioType não puder ser determinado para um recurso dado (talvez porque seja um áudio privado), o dicionário resultante não conterá uma entrada AudioType.
Amostras 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
Essa função retorna detalhes do conteúdo do pacote especificado.
Se o ID do pacote não existir, ele lança HTTP 400 (Bad Request) . Se bundleId não for convertível em um integral, ele lança Unable to cast string to int64 .
Parâmetros
O ID do pacote especificado.
Devolução
Dicionário com os seguintes pares de chave-valor que contêm detalhes sobre o pacote especificado:
Id — ID do pacote (mesmo que o argumento passe bundleId )
Name — Nome do pacote
Description — descriçãodo pacote
BundleType — String representando o Enum.BundleType , por exemplo "BodyParts" ou "DynamicHead"
Items — Array de itens no pacote, cada um com detalhes representados pelas seguintes chaves:
Id — ID do Item
Name — Nome do item
Type — Tipo de item como "Asset" .
Amostras 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
Retorna um objeto StandardPages que contém o nome e PlaceId de locais dentro da experiência atual.
Devolução
Amostras 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 a criação de recursos na experiência para usuários solicitando um diálogo de publicação.Quando chamado, apresenta um diálogo ao usuário, permitindo que ele insira um nome, descrição e visualize o ativo.Ao enviar, salva o recurso no inventário do usuário.Só pode ser invocado no lado do servidor.
Parâmetros
O usuário que envia a criaçõesde um recurso.
O recurso a ser criado. Atualmente não pode conter scripts ou aninhar recursos não públicos.
O digitarde recurso. Atualmente só pode ser Enum.AssetType.Model .
Devolução
O par de ID de recurso e ID de recurso se Enum.PromptCreateAssetResult for bem-sucedido.
PromptImportAnimationClipFromVideoAsync
Parâmetros
Devolução
SavePlaceAsync
Salva o estado do local atual. Funciona apenas para locais que são criados com AssetService:CreatePlaceAsync() ou que têm a API habilitada através das configurações do local.
Devolução
SearchAudio
Retorna um objeto AudioPages que contém o resultado da pesquisardada. Não retornará campos com valores vazios.
Observe que este método tem um limite baixo de solicitações HTTP e pode lançar um erro, então deve sempre ser embalado em pcall() para o manuseio de erros.Mensagens de erro possíveis incluem:
<th>Motivo</th></tr></thead><tbody><tr><td>HTTP 429 (Muitos pedidos demais)</td><td><code>Class.AssetService:SearchAudio()</code> foi chamado muitas vezes.</td></tr><tr><td>Tipo inesperado para dados, array esperado ficou nulo</td><td>O argumento de palavra-chave foi filtrado.</td></tr></tbody>
Mensagem de Erro |
---|
Parâmetros
Devolução
Amostras 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
}
}
--]]