AssetService
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
AssetService ist ein nicht replizierter Dienst, der Asset-bezogene Anfragen an die Roblox-Web-API verarbeitet.
Zusammenfassung
Methoden
Erstellt ein neues EditableImage.
Erstellt eine neue, leere EditableMesh.
Lädt ein neues Asset auf Roblox vom angegebenen Objekt hoch.
- CreateAssetVersionAsync(object : Object,assetType : Enum.AssetType,assetId : number,requestParameters : Dictionary):Tuple
Lädt eine neue Version für ein vorhandenes Asset aus dem angegebenen Objekt hoch.
Erstellt ein neues EditableImage Objekt, das mit dem angegebenen Bild gefüllt ist.
Gibt ein neues EditableMesh Objekt zurück, das aus einer bestehenden Mesh-Inhalts-ID erstellt wurde.
Erstellt ein neues MeshPart mit einer angegebenen Mesh-ID und einer optionalen Tabelle von Treuewerten.
Klont einen Ort durch die angegebene templatePlaceID .
- CreatePlaceInPlayerInventoryAsync(player : Instance,placeName : string,templatePlaceID : number,description : string):number
Klont einen Ort durch die angegebene templatePlaceID und legt ihn in das Inventar des angegebenen Spielers.
Gibt eine Reihe von Asset-IDs zurück, die in einem bestimmten Paket enthalten sind.
Bietet relevante Metadaten über eine bestimmte Audioquelle.
Gibt Details der Inhalte eines bestimmten Bündels zurück.
Gibt ein StandardPages Objekt zurück, das den Namen und PlaceId der Orte innerhalb der aktuellen Erfahrung enthält.
Erlaubt die Erstellung von Assets in der Erfahrung für Benutzer, indem ein Veröffentlichungsdialog angezeigt wird.
Speichert den Zustand des aktuellen Ortes.
Findet Audiodateien, die einer Vielzahl von Suchkriterien entsprechen.
Eigenschaften
Methoden
CreateEditableImage
Erstellt ein neues EditableImage. Standardmäßig wird die Auflösung auf 512×512 festgelegt, aber du kannst eine andere Größe mit der Optionstabelle der Methode angeben.
Wenn das spezifische bearbeitbare Speicherbudget für das Gerät ausgegeben ist, scheitert die Erstellung und diese Methode gibt nil zurück.
Parameter
Optionentabelle mit Steuerelementen für die Methode:
- Size – A Vector2 das gibt die gewünschte Breite und Höhe des Bildes an.
Rückgaben
CreateEditableMesh
Erstellt eine neue, leere EditableMesh.Vertiz, Dreieck und ihre Attribute können dynamisch zu ihr hinzugefügt werden.Wenn das spezifische bearbeitbare Speicherbudget für das Gerät erschöpft ist, scheitert die Erstellung und diese Methode gibt nil zurück.
Parameter
Tabelle mit Optionen für die erstellte EditableMesh .Derzeit sind keine Optionen verfügbar, da FixedSize immer false für leere bearbeitbare Meshes sein wird.
Rückgaben
CreateAssetAsync
Lädt ein neues Asset auf Roblox vom angegebenen Objekt hoch.
Derzeit kann diese Methode nur in lokal geladenen Plugins und Assets hochgeladen werden, ohne zuerst gefragt zu werden.
Parameter
Das Objekt, das als Asset erstellt werden soll.
Derzeit unterstützte Arten sind:
Optionentabelle mit Asset-Metadaten:
- Name – Name des Assets als String. Standard ist [object.Name] .
- Description – Beschreibung des Assets als String. Standard ist "Created with AssetService:CreateAssetAsync" .
- CreatorId – ID des Asset-Erstellers als Zahl.Standard für den angemeldeten Roblox Studio-Benutzer für Plugin-Kontext.Erforderlich für den Open Cloud Luau-Ausführungskontext.
- CreatorType – Enum.AssetCreatorType – zeigt den Typ des Asset-Erstellers an.Standard auf Enum.AssetCreatorType.User im Plugin-Kontext.Erforderlich für den Open Cloud Luau-Ausführungskontext.
Rückgaben
Die Enum.CreateAssetResult und Asset-ID-Paare, wenn erfolgreich.
Code-Beispiele
Der folgende Code erstellt ein Mesh-Asset aus einem bearbeitbaren Mesh.
local AssetService = game:GetService("AssetService")
local editableMesh = AssetService:CreateEditableMesh()
-- füge vertices, gesichter und uvs zum netz hinzu
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
Lädt eine neue Version für ein vorhandenes Asset aus dem angegebenen Objekt hoch.
Derzeit kann diese Methode nur in lokal geladenen Plugins und Assets hochgeladen werden, ohne zuerst gefragt zu werden.
Parameter
Das Objekt, das als Asset erstellt werden soll.
Derzeit unterstützte Arten sind:
Die ID des Assets für die neue Version.
Optionentabelle mit Asset-Metadaten:
- Name – Ein string . Name des Assets. Standard: object.Name.
- Description – Eine string . Beschreibung des Assets. Standard: "Erstellt mit AssetService:CreateAssetAsync".
- CreatorId – A number .ID des Asset-Erstellers.Standard: Der angemeldete Roblox Studio-Benutzer für den Plugin-Kontext.Erforderlich für den Open Cloud Luau-Ausführungskontext.
- CreatorType – Ein Enum.AssetCreatorType . Typ des Asset-Erstellers. Standard: Enum.AssetCreatorType.User im Plugin-Kontext. Erforderlich für den Kontext der Open Cloud Luau-Ausführung.
Rückgaben
Die Enum.CreateAssetResult und Asset-Versionnummerpaare, wenn erfolgreich.
Code-Beispiele
Der folgende Code erstellt eine neue Modell-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
Erstellt ein neues EditableImage Objekt, das mit der angegebenen Textur gefüllt ist.Nicht-Asset-Texturen-IDs wie rbxthumb:// werden unterstützt.Wenn ein Bild-Asset verwendet wird, muss es mit und/oder im Besitz eines Erstellers des Erlebnisses sein oder es muss innerhalb des Erlebnisses erstellt worden sein.Wenn das für das Gerät spezifische bearbeitbare Speicherbudget erschöpft ist, scheitert die Erstellung und diese Methode gibt nil zurück.
Siehe die EditableImage.
Parameter
Verweis auf Inhalte, die extern gespeichert oder als Objekt innerhalb des Ortes gespeichert sind, und die ein einzelnes Wert von einem der unterstützten Enum.ContentSourceType -Werte ummanteln.
Tabelle mit Optionen für die erstellte EditableImage . Derzeit sind keine Optionen verfügbar, da die Größenänderung über Size nicht unterstützt wird.
Rückgaben
Ein neues EditableImage, das das bereitgestellte Bild enthält.
CreateEditableMeshAsync
Gibt ein neues Objekt zurück, das aus einer vorhandenen oder Mesh-ID erstellt wurde.Standardmäßig wird ein EditableMesh , das aus dieser Methode erstellt wurde, die Größe korrigiert, so dass Mesh-Daten nur modifiziert, nicht hinzugefügt oder entfernt werden können.Eine feste Größe EditableMesh verbraucht weniger Speicher und sollte bei möglichstem Einsatz bevorzugt werden.
Wenn das spezifische bearbeitbare Speicherbudget für das Gerät erschöpft ist, scheitert die Erstellung und diese Methode gibt nil zurück.
Siehe die Aktivierung von bearbeitbaren Meshes für veröffentlichte Erlebnisse und Berechtigungen Abschnitte von für besondere Überlegungen beim Einsatz dieser API.
Parameter
Verweis auf Inhalte, die extern gespeichert oder als Objekt innerhalb des Ortes gespeichert sind, und die ein einzelnes Wert von einem der unterstützten Enum.ContentSourceType -Werte ummanteln.
Optionentabelle mit Steuerelementen für die Methode:
- FixedSize – A bool .Der Standardwert ist true , und die zurückgegebene EditableMesh wird es Ihnen nicht erlauben, Vertices hinzuzufügen oder zu entfernen, nur ihre Werte zu modifizieren.Setze es auf false, wenn die Fähigkeit, die Mesh-Topologie zu ändern, erforderlich ist, zu Lasten der Verwendung mehrerer Speicher.
Rückgaben
Die neue EditableMesh.
CreateMeshPartAsync
Diese Methode erstellt ein MeshPart mit einem angegebenen CollisionFidelity, RenderFidelity und FluidFidelity.Da MeshPart.MeshId nur lesbar ist, ist diese Methode für die Erstellung eines Meshes mit einer beliebigen Meshing-ID durch Skripte gedacht, ohne ein vorhandenes MeshPart klonen zu müssen.Es wirft Fehler, wenn die Erstellung fehlschlägt.
Parameter
Verweis auf Inhalte, die extern gespeichert oder als Objekt innerhalb des Ortes gespeichert sind, und die ein einzelnes Wert von einem der unterstützten Enum.ContentSourceType -Werte ummanteln.
Optionentabelle mit einer oder mehreren Steuerelementen für die Methode:
- CollisionFidelity – Der Wert von CollisionFidelity im resultierenden Teil.Standard auf Enum.CollisionFidelity.Default, wenn die Option fehlt oder die options Tabelle ist nil.
- RenderFidelity – Der Wert von RenderFidelity im resultierenden Teil.Standard auf Enum.RenderFidelity.Automatic, wenn die Option fehlt oder die options Tabelle ist nil.
- FluidFidelity – Der Wert von FluidFidelity im resultierenden Teil.Standard auf Enum.FluidFidelity.Automatic, wenn die Option fehlt oder die options Tabelle ist nil.
Rückgaben
CreatePlaceAsync
Klont einen Ort durch die angegebene templatePlaceID und gibt die PlaceId des neuen Ortes zurück, die du mit TeleportService verwenden kannst.Der Klonplatz wird im Inventar des Erstellers des Ortes mit dem angegebenen Namen und der Beschreibung angezeigt.
Beachten Sie, dass der Platz für Vorlagen durch Platzoptionen aktiviert sein muss, um Kopieren von Vorlagen zu aktivieren. Sie können diese Methode nicht verwenden, um Orte zu klonen, die Sie nicht besitzen.
Es wird nicht empfohlen, diese API häufig zu verwenden, insbesondere wenn die erstellten Orte Skripte enthalten, da das Aktualisieren des Codes in einer großen Anzahl von Orten schnell unmöglich wird.Für von Benutzern generierte Welten, betrachte die Serialisierung von Benutzererstellungen und speichere sie stattdessen in DataStores .
Parameter
Name des neuen Ortes.
Beschreibung des neuen Ortes.
Rückgaben
CreatePlaceInPlayerInventoryAsync
Parameter
Rückgaben
GetAssetIdsForPackage
Gibt eine Reihe von Asset-IDs zurück, die in einem bestimmten Paket enthalten sind.
Parameter
Rückgaben
Asset-IDs, die in einem bestimmten Paket enthalten sind.
GetAudioMetadataAsync
Bietet relevante Metadaten über eine bestimmte Audioquelle (Künstler, Titel, Dauer, Art, etc.).
Parameter
Array von Asset- oder Inhalts-IDs, für die Metadaten abgerufen werden sollen. Die maximale Batchgröße beträgt 30.
Rückgaben
Array von Dictionär-Tabellen in der gleichen Reihenfolge wie die Anfrage, in der jedes Dictionär die folgenden Metadaten für sein Asset/Inhalt enthält:
AssetId (zeichenkette)
Title (zeichenkette)
Artist (zeichenkette)
Duration (zahl) in sekunden
AudioType ( Enum.AudioSubType )
Beachten Sie, dass, wenn ein Fehler beim Abrufen von Metadaten für eines der angeforderten Assets auftritt, zum Beispiel die Asset-ID nicht existiert, ihre Dictionary-Tabel immer noch in der zurückgegebenen Liste enthalten ist, aber sie enthält nur das Feld AssetId für Referenzzwecke.Zusätzlich, wenn die AudioType für ein bestimmtes Asset nicht bestimmt werden kann (vielleicht weil es sich um privates Audio handelt), wird die daraus resultierende Diktion kein AudioType Eintrag enthalten.
Code-Beispiele
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
Diese Funktion gibt Details über den Inhalt des angegebenen Bündels zurück.
Wenn die Bündel-ID nicht existiert, wirft sie HTTP 400 (Bad Request) . Wenn bundleId nicht in ein Ganzzahl umwandelbar ist, wirft sie Unable to cast string to int64 .
Parameter
Die ID des angegebenen Bündels.
Rückgaben
Wörterbuch mit den folgenden Schlüssel-Wert-Paaren, die Details über das angegebene Bündel enthalten:
Id — Bündel-ID (gleich wie übergebenes bundleId Argument)
Name — Bündelnamen
Description — Bündelbeschreibung
BundleType — Sicherung, die die Enum.BundleType darstellt, zum Beispiel "BodyParts" oder "DynamicHead"
Items — Array von Elementen im Bündel, jedes mit Details, die durch die folgenden Schlüssel dargestellt werden:
Id — Artikel-ID
Name — Artikelname
Type — Artikeltyp wie "Asset" .
Code-Beispiele
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
Gibt ein StandardPages Objekt zurück, das den Namen und PlaceId der Orte innerhalb der aktuellen Erfahrung enthält.
Rückgaben
Code-Beispiele
Der folgende Code druckt den Namen und PlaceId jedes Ortes in der Erfahrung aus.
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
Erlaubt die Erstellung von Assets in der Erfahrung für Benutzer, indem ein Veröffentlichungsdialog angezeigt wird.Wenn aufgerufen, präsentiert es dem Benutzer einen Dialog, um ihm zu ermöglichen, einen Namen, eine Beschreibung und eine Vorschau des Assets einzugeben.Nach dem Absenden speichert es das Asset im Inventar des Benutzers.Kann nur auf der Serverseite aufgerufen werden.
Parameter
Der Benutzer, der eine Asset-Erstellung einreicht.
Das Asset, das erstellt werden soll. Derzeit kann keine Skripte oder nicht öffentliche Assets enthalten.
Der Asset-Typ. Derzeit kann nur Enum.AssetType.Model sein.
Rückgaben
Die Enum.PromptCreateAssetResult und Asset-ID-Paare, wenn erfolgreich.
PromptImportAnimationClipFromVideoAsync
Parameter
Rückgaben
SavePlaceAsync
Speichert den aktuellen Zustand des Ortes. Beachte die folgenden Richtlinien und Einschränkungen:
- Diese Methode funktioniert nur für Orte, die mit AssetService:CreatePlaceAsync() erstellt wurden, oder die die API über die Einstellungen des Ortes aktiviert haben.
- Diese Methode überschreibt den vorherigen Zustand des Ortes. Um eine Speicherung rückgängig zu machen, veröffentliche eine ältere Version des Ortes.
- Es gibt Fälle, in denen Speicherungen gleichzeitig im Studio und auf mehreren Erlebnissерvern auftreten können.Die Reihenfolge der Speicherungen geschieht in der Reihenfolge, in der sie aufgerufen werden.
- Eine aktive Team-Erstellungs-Sitzung im Studio blockiert alle Speicherungen.
Parameter
Rückgaben
SearchAudio
Gibt ein AudioPages Objekt zurück, das das Ergebnis der angegebenen Suche enthält. Wird keine Felder mit leeren Werten zurückgeben.
Beachten Sie, dass diese Methode ein niedriges HTTP-Anforderungslimit hat und Fehler werfen kann, so dass sie immer in pcall() für die Fehlerbehandlung eingepackt werden sollte.Mögliche Fehlermeldungen umfassen:
<th>Grund</th></tr></thead><tbody><tr><td>HTTP 429 (Zu viele Anfragen)</td><td><code>Class.AssetService:SearchAudio()</code> wurde zu oft aufgerufen.</td></tr><tr><td>Unerwarteter Typ für Daten, erwartetes Array wurde null</td><td>Das Schlüsselwort-Argument wurde gefiltert.</td></tr></tbody>
Fehlnachricht |
---|
Parameter
Rückgaben
Code-Beispiele
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
}
}
--]]