AssetService

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Non costruibile
Assistenza

AssetService è un servizio non replicato che gestisce le richieste correlate alle risorse alla API web Roblox.

Sommario

Metodi

Proprietà

Metodi

CreateEditableImage

Crea un nuovo EditableImage . Per impostazione predefinita, la risoluzione è impostata su 512×512, ma puoi specificare una dimensione diversa utilizzando la tabella delle opzioni del metodo.

Se il budget di memoria modificabile specifico per il dispositivo è esaurito, la creazione fallisce e questo metodo restituisce nil .

Parametri

editableImageOptions: Dictionary

Tabella delle opzioni che contiene controlli per il metodo:

  • Size – A Vector2 che specifica la larghezza e l'altezza desiderate dell'immagine.
Valore predefinito: ""

Restituzioni

CreateEditableMesh

Crea una nuova, vuota EditableMesh .I vertici, i triangoli e i loro attributi possono essere aggiunti dinamicamente ad esso.Se il budget di memoria modificabile specifico per il dispositivo è esaurito, la creazione fallirà e questo metodo restituirà nil .

Parametri

editableMeshOptions: Dictionary

Tabella che contiene opzioni per il creato EditableMesh .Al momento non sono disponibili opzioni poiché FixedSize sarà sempre false per mesh modificabili vuoti.

Valore predefinito: ""

Restituzioni

CreateSurfaceAppearance

Parametri

content: Dictionary
Valore predefinito: ""

Restituzioni

CreateAssetAsync

Resa

Carica una nuova risorsa su Roblox dall'oggetto fornito.

Attualmente, questo metodo può essere utilizzato solo in plugin localmente caricati e carica risorse senza richiedere prima.

Parametri

object: Object

L'oggetto da creare come risorsa.

Valore predefinito: ""
assetType: Enum.AssetType

I tipi attualmente supportati sono:

Valore predefinito: ""
requestParameters: Dictionary

Tabella delle opzioni che contiene le metadati delle risorse:

  • Name – Nome della risorsa come Stringa. Predefinito a [object.Name] .
  • Description – Descrizione dell'asset come Stringa. Predefinito a "Created with AssetService:CreateAssetAsync" .
  • CreatorId – ID del creatore di risorse come numero.Predefinito per l'utente di Roblox Studio registrato per il contesto del plugin.Richiesto per il contesto di esecuzione Open Cloud Luau.
  • CreatorTypeEnum.AssetCreatorType indicando il tipo di Creatoredi risorse.Predefinito a Enum.AssetCreatorType.User nel contesto del plugin.Richiesto per il contesto di esecuzione Open Cloud Luau.
  • IsPackage – Valore booleano, applicabile solo al tipo Enum.AssetType.Model . Default a true .
Valore predefinito: "nil"

Restituzioni

Il Enum.CreateAssetResult e la coppia ID risorsa se riuscito.

Campioni di codice

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

Resa

Carica una nuova versione per una risorsa esistente dall'oggetto fornito.

Attualmente, questo metodo può essere utilizzato solo in plugin localmente caricati e carica risorse senza richiedere prima.

Parametri

object: Object

L'oggetto da creare come risorsa.

Valore predefinito: ""
assetType: Enum.AssetType

I tipi attualmente supportati sono:

Valore predefinito: ""
assetId: number

L'ID della risorsa per la nuova versione.

Valore predefinito: ""
requestParameters: Dictionary

Tabella delle opzioni che contiene le metadati delle risorse:

  • Name – A string . Nome dell'risorsa. Predefinito: oggetto.Name.
  • Description – A string . Descrizione della risorsa. Predefinito: "Creato con AssetService:CreateAssetAsync".
  • CreatorId – A number .ID del Creatoredell'asset.Predefinito: L'utente di Roblox Studio registrato per il contesto del plugin.Richiesto per il contesto di esecuzione Open Cloud Luau.
  • CreatorType – A Enum.AssetCreatorType . Tipo di Creatoredi risorse. Predefinito: Enum.AssetCreatorType.User nel contesto Plugin. Richiesto per il contesto di esecuzione Open Cloud Luau.
  • IsPackage – A bool . Applicabile solo al tipo Enum.AssetType.Model. Predefinito: vero.
Valore predefinito: "nil"

Restituzioni

Il Enum.CreateAssetResult e il numero di versione delle risorse se riuscito.

Campioni di codice

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

Resa

Crea un nuovo oggetto EditableImage popolato con la Strutturadata.Gli ID delle texture non assegnate come rbxthumb:// sono supportati.Se si utilizza una risorsa immagine, deve essere associata e/o posseduta da un creatore dell'esperienza, o deve essere stata creata all'interno dell'esperienza.Se il budget di memoria modificabile specifico per il dispositivo è esaurito, la creazione fallirà e questo metodo restituirà nil .

Vedi la documentazione EditableImage per considerazioni speciali quando si utilizza questa API.

Parametri

content: Content

Riferimento al contenuto delle risorse memorizzato esternamente o come oggetto all'interno del Posto, avvolgendo un singolo valore di uno dei valori supportati Enum.ContentSourceType .

Valore predefinito: ""
editableImageOptions: Dictionary

Tabella che contiene opzioni per il creato EditableImage . Al momento non sono disponibili opzioni poiché non è supportata la ridimensionamento tramite Size .

Valore predefinito: ""

Restituzioni

Un nuovo EditableImage contenente l'immagine fornita.

CreateEditableMeshAsync

Resa

Restituisce un nuovo oggetto EditableMesh creato da un ID esistente EditableMesh o mesh Content .Per impostazione predefinita, un EditableMesh creato da questo metodo sarà di dimensione fissa in modo che i dati della mesh possano essere modificati solo, non aggiunti o rimossi.Una dimensione fissa EditableMesh consuma meno memoria e dovrebbe essere preferita quando possibile.

Se il budget di memoria modificabile specifico per il dispositivo è esaurito, la creazione fallirà e questo metodo restituirà nil .

Vedi le sezioni Abilitazione di EditableMesh per esperienze pubblicate e Permessi di EditableMesh per considerazioni speciali quando si utilizza questa API.

Parametri

content: Content

Riferimento al contenuto delle risorse memorizzato esternamente o come oggetto all'interno del Posto, avvolgendo un singolo valore di uno dei valori supportati Enum.ContentSourceType .

Valore predefinito: ""
editableMeshOptions: Dictionary

Tabella delle opzioni che contiene controlli per il metodo:

  • FixedSize – A bool .Il valore predefinito è true , e il ritornato EditableMesh non ti consentirà di aggiungere o rimuovere vertici, solo di modificare i loro valori.Imposta su false se è richiesta la capacità di modificare la topologia della mesh a spese di utilizzare più memoria.
Valore predefinito: ""

Restituzioni

La nuova EditableMesh esempio.

CreateMeshPartAsync

Resa

Questo metodo crea un MeshPart con un CollisionFidelity , RenderFidelity e FluidFidelity specificato.Poiché MeshPart.MeshId è solo in lettura, questo metodo è per creare una mesh con qualsiasi ID mesh attraverso gli script, senza dover clonare un'esistente MeshPart .Lancia errori se la creazione fallisce.

Parametri

meshContent: Content

Riferimento al contenuto delle risorse memorizzato esternamente o come oggetto all'interno del Posto, avvolgendo un singolo valore di uno dei valori supportati Enum.ContentSourceType .

Valore predefinito: ""
options: Dictionary

Tabella delle opzioni che contiene uno o più controlli per il metodo:

Valore predefinito: "nil"

Restituzioni

CreatePlaceAsync

Resa

Clona un luogo attraverso il dato templatePlaceID e restituisce il PlaceId del nuovo Posto, che puoi utilizzare con TeleportService .Il luogo di clonazione viene visualizzato nell'inventario del creatore del Postocon il nome e la Descrizioneforniti.

Nota che il luogo del modello deve avere la copia del modello abilitata attraverso le impostazioni del luogo. Non puoi usare questo metodo per clonare luoghi che non Proprio.

Non è raccomandato l'uso frequente di questa API, in particolare se i luoghi creati contengono script, poiché l'aggiornamento del codice in un grande volume di luoghi diventa rapidamente impraticabile.Per i mondi generati dall'utente, considera la serializzazione delle creazioni dell'utente e il loro salvataggio in DataStores invece.

Parametri

placeName: string

Nome del nuovo Posto.

Valore predefinito: ""
templatePlaceID: number

PlaceId del luogo da clonare.

Valore predefinito: ""
description: string

Descrizione del nuovo Posto.

Valore predefinito: ""

Restituzioni

PlaceId del nuovo posto.

CreatePlaceInPlayerInventoryAsync

Resa

Parametri

player: Instance
Valore predefinito: ""
placeName: string
Valore predefinito: ""
templatePlaceID: number
Valore predefinito: ""
description: string
Valore predefinito: ""

Restituzioni

GetAssetIdsForPackage

Resa

Restituisce un array di ID risorse che sono contenuti in un pacchetto specificato.

Parametri

packageAssetId: number
Valore predefinito: ""

Restituzioni

ID risorse che sono contenuti in un pacchetto specificato.

GetAudioMetadataAsync

Resa

Fornisce metadata pertinenti su una fonte audio specifica (artista, titolo, durata, inserisci / scrivi, ecc.).

Parametri

idList: Array

Array di ID risorsa o contenuto per i quali recuperare i metadati. La dimensione massima del batch è 30.

Valore predefinito: ""

Restituzioni

array di tabelle di dizionario nell'ordine stesso della Richiesta, dove ciascun dizionario contiene i seguenti metadati per la propria risorsa/contenuto:

  • AssetId (stringa)

  • Title (stringa)

  • Artist (stringa)

  • Duration (numbero) in secondi

  • AudioType ( Enum.AudioSubType )

Nota che se si verifica un errore durante il recupero dei metadati per qualsiasi risorsa richiesta, ad esempio l'ID della risorsa non esiste, la sua tabella dizionario è ancora inclusa nell'array restituito ma contiene solo il campo AssetId per scopi di riferimento.Inoltre, se il AudioType non può essere determinato per una risorsa data (forse perché è un audio/suonoprivato), l'elenco risultante non conterrà un'entrata AudioType.

Campioni di codice


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

Resa

Questa funzione restituisce i dettagli del contenuto del pacchettospecificato.

Se l'ID del pacchetto non esiste, lancia HTTP 400 (Bad Request) . Se bundleId non è convertibile in un intero, lancia Unable to cast string to int64 .

Parametri

bundleId: number

L'ID del pacchetto specificato.

Valore predefinito: ""

Restituzioni

Dizionario con le seguenti coppie chiave-valore che contengono dettagli sul pacchetto specificato:

  • Id — ID del pacchetto (idem come argomento passato bundleId )

  • Name — Nome del pacchetto

  • Description — Descrizione del pacchetto

  • BundleType — Stringa che rappresenta il Enum.BundleType , ad esempio "BodyParts" o "DynamicHead"

  • Items — Array di oggetti nel pacchetto, ciascuno con dettagli rappresentati attraverso le seguenti chiavi:

    • Id — ID dell'oggetto

    • Name — Nome dell'oggetto

    • Type — Tipo di oggetto come "Asset" .

Campioni di codice

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

Resa

Restituisce un oggetto StandardPages che contiene il nome e PlaceId di luoghi all'interno dell'esperienza attuale.


Restituzioni

Campioni di codice

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

Resa

Consente la creazione di risorse in-experience per gli utenti richiedendo un dialogo di pubblicazione.Quando viene chiamato, presenta un dialogo all'utente, consentendo loro di inserire un nome, una Descrizionee visualizzare in anteprima la risorsa.Al momento della presentazione, salva la risorsa nell'Inventario, reportoriodell'utente.Può essere invocato solo sul lato server.

Parametri

player: Player

L'utente che invia la Creazionidi una risorsa.

Valore predefinito: ""
instance: Instance

L'asset da creare. Al momento non può contenere script o annidare risorse non pubbliche.

Valore predefinito: ""
assetType: Enum.AssetType

Il inserisci / scrividi risorsa. Attualmente può essere solo Enum.AssetType.Model .

Valore predefinito: ""

Restituzioni

Il Enum.PromptCreateAssetResult e la coppia ID risorsa se riuscito.

PromptImportAnimationClipFromVideoAsync

Resa

Parametri

player: Player
Valore predefinito: ""
progressCallback: function
Valore predefinito: ""

Restituzioni

SavePlaceAsync

()
Resa

Salva lo stato del Postoattuale. Funziona solo per i luoghi creati con AssetService:CreatePlaceAsync() o che hanno l'API abilitata attraverso le impostazioni del luogo.


Restituzioni

()

SearchAudio

Resa

Restituisce un oggetto AudioPages contenente il risultato della Cercaredata. Non restituirà campi con valori vuoti.

Nota che questo metodo ha un basso limite di richieste HTTP e può lanciare un'errore, quindi dovrebbe essere sempre avvolto in pcall() per la gestione degli errori.I messaggi di errore possibili includono:


<th>Motivo</th>
</tr>
</thead>
<tbody>
<tr>
<td>HTTP 429 (Troppi richieste)</td>
<td><code>Class.AssetService:SearchAudio()</code> è stato chiamato troppe volte.</td>
</tr>
<tr>
<td>Tipo inaspettato per i dati, array previsto ottenuto null</td>
<td>L'argomento della parola chiave è stato filtrato.</td>
</tr>
</tbody>
Messaggio di errore

Parametri

searchParameters: AudioSearchParams
Valore predefinito: ""

Restituzioni

Campioni di codice

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
}
}
--]]

Eventi