AssetService
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
AssetService è un servizio non replicato che gestisce le richieste correlate alle risorse alla API web Roblox.
Sommario
Proprietà
Metodi
Crea un nuovo EditableImage .
Crea una nuova, vuota EditableMesh .
Carica una nuova risorsa su Roblox dall'oggetto fornito.
- CreateAssetVersionAsync(object : Object,assetType : Enum.AssetType,assetId : number,requestParameters : Dictionary):Tuple
Carica una nuova versione per una risorsa esistente dall'oggetto fornito.
Crea un nuovo oggetto EditableImage popolato con l'immagine data.
Restituisce un nuovo oggetto EditableMesh creato da un ID contenuto mesh esistente.
Crea una nuova MeshPart con un ID mesh specificato e una tabella opzionale di valori di fedeltà.
Clona un luogo attraverso il dato templatePlaceID.
- CreatePlaceInPlayerInventoryAsync(player : Instance,placeName : string,templatePlaceID : number,description : string):number
Clona un luogo attraverso il dato templatePlaceID e lo mette nell'inventario del Giocatoredato.
Restituisce un array di ID risorse che sono contenuti in un pacchetto specificato.
Fornisce metadata pertinenti su una Sorgenteaudio specifica.
Restituisce i dettagli del contenuto del pacchetto specificato.
Restituisce un oggetto StandardPages che contiene il nome e PlaceId di luoghi all'interno dell'esperienza attuale.
Consente la creazione di risorse in-experience per gli utenti richiedendo un dialogo di pubblicazione.
Salva lo stato del Postoattuale.
Trova risorse audio corrispondenti a una varietà di criteri di ricerca.
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
Tabella delle opzioni che contiene controlli per il metodo:
- Size – A Vector2 che specifica la larghezza e l'altezza desiderate dell'immagine.
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
Tabella che contiene opzioni per il creato EditableMesh .Al momento non sono disponibili opzioni poiché FixedSize sarà sempre false per mesh modificabili vuoti.
Restituzioni
CreateSurfaceAppearance
Parametri
Restituzioni
CreateAssetAsync
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
L'oggetto da creare come risorsa.
I tipi attualmente supportati sono:
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.
- CreatorType – Enum.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.
Restituzioni
Il Enum.CreateAssetResult e la coppia ID risorsa se riuscito.
Campioni di codice
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
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
L'oggetto da creare come risorsa.
I tipi attualmente supportati sono:
L'ID della risorsa per la nuova versione.
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.
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.
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 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
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 .
Tabella che contiene opzioni per il creato EditableImage . Al momento non sono disponibili opzioni poiché non è supportata la ridimensionamento tramite Size .
Restituzioni
Un nuovo EditableImage contenente l'immagine fornita.
CreateEditableMeshAsync
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
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 .
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.
Restituzioni
La nuova EditableMesh esempio.
CreateMeshPartAsync
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
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 .
Tabella delle opzioni che contiene uno o più controlli per il metodo:
- CollisionFidelity – Il valore di CollisionFidelity nella parte risultante.Predefinito a Enum.CollisionFidelity.Default se l'opzione è assente o la tabella options è nil .
- RenderFidelity – Il valore di RenderFidelity nella parte risultante.Predefinito a Enum.RenderFidelity.Automatic se l'opzione è assente o la tabella options è nil .
- FluidFidelity – Il valore di FluidFidelity nella parte risultante.Predefinito a Enum.FluidFidelity.Automatic se l'opzione è assente o la tabella options è nil .
Restituzioni
CreatePlaceAsync
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
Nome del nuovo Posto.
Descrizione del nuovo Posto.
Restituzioni
CreatePlaceInPlayerInventoryAsync
Parametri
Restituzioni
GetAssetIdsForPackage
Restituisce un array di ID risorse che sono contenuti in un pacchetto specificato.
Parametri
Restituzioni
ID risorse che sono contenuti in un pacchetto specificato.
GetAudioMetadataAsync
Fornisce metadata pertinenti su una fonte audio specifica (artista, titolo, durata, inserisci / scrivi, ecc.).
Parametri
Array di ID risorsa o contenuto per i quali recuperare i metadati. La dimensione massima del batch è 30.
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
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
L'ID del pacchetto specificato.
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
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
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.
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
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
L'utente che invia la Creazionidi una risorsa.
L'asset da creare. Al momento non può contenere script o annidare risorse non pubbliche.
Il inserisci / scrividi risorsa. Attualmente può essere solo Enum.AssetType.Model .
Restituzioni
Il Enum.PromptCreateAssetResult e la coppia ID risorsa se riuscito.
PromptImportAnimationClipFromVideoAsync
Parametri
Restituzioni
SavePlaceAsync
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
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
Restituzioni
Campioni di codice
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
}
}
--]]