AssetService
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Usługa zasobów to usługa niezareplikowana, która obsługuje zapytania związane z zasobami do API web Roblox.
Podsumowanie
Metody
Tworzy nowy EditableImage.
Tworzy nowy, pusty EditableMesh.
Prześladza nowy zasób do Roblox z danego obiektu.
- CreateAssetVersionAsync(object : Object,assetType : Enum.AssetType,assetId : number,requestParameters : Dictionary):Tuple
Prześle nową wersję dla istniejącego zasobu z danego obiektu.
Tworzy nowy obiekt EditableImage wypełniony podanym obrazem.
Zwraca nowy obiekt EditableMesh utworzony z istniejącego ID zawartości siatki.
Tworzy nową MeshPart z określonym ID siatki i opcjonalną tabelą wartości wierności.
Klonuje miejsce za pomocą podanego templatePlaceID.
- CreatePlaceInPlayerInventoryAsync(player : Instance,placeName : string,templatePlaceID : number,description : string):number
Klonuje miejsce za pomocą podanego templatePlaceID i umieszcza je w ekwipunku danego gracza.
Zwraca tablicę ID zasobów, które znajdują się w określonym pakiecie.
Dostarcza odpowiednie metadane o konkretnym kod źródłowyaudio.
Zwraca szczegóły zawartości określonego pakietu.
Zwraca obiekt StandardPages, który zawiera nazwę i PlaceId miejsc w obecnym doświadczeniu.
Pozwala na tworzenie zasobów w doświadczeniu dla użytkowników poprzez wysłanie dialogu publikacji.
Zapisuje stan obecnego miejsce.
Znajduje zasoby audio pasujące do różnych kryteriów wyszukiwania.
Właściwości
Metody
CreateEditableImage
Tworzy nowy EditableImage. Domyślnie rozdzielczość jest ustawiona na 512×512, ale możesz określić inną wielkość za pomocą tabeli opcji metody.
Jeśli budżet pamięci edytowalnej dla urządzenia zostanie wyczerpany, tworzenie nie powodzi się i ta metoda zwraca nil .
Parametry
Tabela opcji zawierająca kontrolki dla metody:
- Size – A Vector2 określające pożądaną szerokość i wysokość obrazu.
Zwroty
CreateEditableMesh
Tworzy nowy, pusty EditableMesh.Wierzety, trójkąty i ich atrybuty mogą być dodawane do niego dynamicznie.Jeśli budżet pamięci edytowalnej dla urządzenia zostanie wyczerpany, tworzenie nie powiedzie się i ta metoda zwróci nil .
Parametry
Tabela zawierająca opcje dla utworzonego EditableMesh .Obecnie nie ma dostępnych opcji, ponieważ FixedSize zawsze będzie false dla pustych edytowanych siatek.
Zwroty
CreateSurfaceAppearance
Parametry
Zwroty
CreateAssetAsync
Prześladza nowy zasób do Roblox z danego obiektu.
Obecnie metoda ta może być używana tylko w lokalnie załadowanych pluginach i przesłaniu zasobów bez uprzedniego zapytania.
Parametry
Obiekt, który ma zostać utworzony jako aktyw.
Obecnie wspierane typy to:
Tabela opcji zawierająca metadane zasobów:
- Name – Nazwa zasobu jako ciąg. Domyślnie jest to [object.Name] .
- Description – Opis zasobu jako ciąg. Domyślnie jest to "Created with AssetService:CreateAssetAsync" .
- CreatorId – ID twórcy zasobu jako liczba.Domyślnie dla zalogowanego użytkownika Roblox Studio dla kontekstu wtyczki.Wymagane dla kontekstu wykonania Open Cloud Luau.
- CreatorType – Enum.AssetCreatorType wskazujący rodzaj twórcazasobów.Domyślnie do Enum.AssetCreatorType.User w kontekście pluginów.Wymagane dla kontekstu wykonania Open Cloud Luau.
- IsPackage – wartość binarna, odpowiednia tylko dla wpisywaćEnum.AssetType.Model. Domyślnie jest to true.
Zwroty
Para ID Enum.CreateAssetResult i zasobów, jeśli powiodła się pomyślnie.
Przykłady kodu
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
Prześle nową wersję dla istniejącego zasobu z danego obiektu.
Obecnie metoda ta może być używana tylko w lokalnie załadowanych pluginach i przesłaniu zasobów bez uprzedniego zapytania.
Parametry
Obiekt, który ma zostać utworzony jako aktyw.
Obecnie wspierane typy to:
ID zasobu dla nowej wersji.
Tabela opcji zawierająca metadane zasobów:
- Name – A string . Nazwa zasobu. Domyślnie: object.Name.
- Description – A string . Opis zasobu. Domyślnie: "Stworzono za pomocą AssetService:CreateAssetAsync".
- CreatorId – A number .ID twórcazasobu.Domyślnie: Użytkownik zalogowany do Roblox Studio dla kontekstu wtyczki.Wymagane dla kontekstu wykonania Open Cloud Luau.
- CreatorType – A Enum.AssetCreatorType . Typ twórcy twórca. Domyślny: Enum.AssetCreatorType.User w kontekście Plugin. Wymagany dla kontekstu wykonania Open Cloud Luau.
Zwroty
Para numeru wersji Enum.CreateAssetResult i wersji zasobu, jeśli zakończy się sukcesem.
Przykłady kodu
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
Tworzy nowy obiekt EditableImage wypełniony podaną teksturą.Nieobsługiwane są ID tekstur niezwiązanych z aktywami, takie jak rbxthumb://.Jeśli używasz zasobu obrazu, musi być związany z i/lub należący do twórcy doświadczenia, albo musi zostać stworzony wewnątrz doświadczenia.Jeśli budżet pamięci edytowalnej dla urządzenia zostanie wyczerpany, tworzenie nie powiedzie się i ta metoda zwróci nil .
Zobacz dokumentację EditableImage na specjalne rozważania przy użyciu tej API.
Parametry
Odwołanie do zawartości zasobu przechowywanego zewnętrznie lub jako obiekt w miejsce, owijające pojedynczą wartość jednej z wspieranych wartości Enum.ContentSourceType.
Tabela zawierająca opcje dla utworzonego EditableImage . Obecnie nie są dostępne żadne opcje, ponieważ zmiana rozmiaru za pomocą Size nie jest wspierana.
Zwroty
Nowy EditableImage zawierający dostarczony obraz.
CreateEditableMeshAsync
Zwraca nowy obiekt EditableMesh utworzony z istniejącego EditableMesh lub siatki Content ID.Domyślnie utworzone z tej metody EditableMesh stworzone z tej metody będzie mieć stały rozmiar, dzięki czemu dane siatki można jedynie modyfikować, nie dodawać ani usuwać.Stała wielkość EditableMesh zużywa mniej pamięci i powinna być preferowana, gdy to możliwe.
Jeśli budżet pamięci edytowalnej dla urządzenia zostanie wyczerpany, tworzenie nie powiedzie się i ta metoda zwróci nil .
Zobacz sekcje Włączanie edytowalnej siatki dla opublikowanych doświadczeń i Uprawnienia w EditableMesh dla specjalnych rozważań przy użyciu tej API.
Parametry
Odwołanie do zawartości zasobu przechowywanego zewnętrznie lub jako obiekt w miejsce, owijające pojedynczą wartość jednej z wspieranych wartości Enum.ContentSourceType.
Tabela opcji zawierająca kontrolki dla metody:
- FixedSize – A bool .Domyślną wartością jest true , a zwrócona EditableMesh nie pozwoli ci dodać lub usunąć węzłów, tylko zmodyfikować ich wartości.Ustaw na false, jeśli wymagana jest możliwość zmiany topologii siatki kosztem wykorzystania większej ilości pamięci.
Zwroty
Nowa instancja EditableMesh.
CreateMeshPartAsync
Ta metoda tworzy MeshPart z określonym CollisionFidelity, RenderFidelity i FluidFidelity.Ponieważ MeshPart.MeshId jest tylko odczytywany, metoda ta służy do tworzenia siatki z dowolnym ID siatki za pomocą skryptów, bez konieczności klonowania istniejącej MeshPart .Wystawia błędy, jeśli tworzenie nie powiedzie się.
Parametry
Odwołanie do zawartości zasobu przechowywanego zewnętrznie lub jako obiekt w miejsce, owijające pojedynczą wartość jednej z wspieranych wartości Enum.ContentSourceType.
Tabela opcji zawierająca jedną lub więcej kontroli dla metody:
- CollisionFidelity – Wartość CollisionFidelity w wynikowej części.Domyślnie do Enum.CollisionFidelity.Default jeśli opcja jest nieobecna lub tabela options jest nil.
- RenderFidelity – Wartość RenderFidelity w wynikowej części.Domyślnie do Enum.RenderFidelity.Automatic jeśli opcja jest nieobecna lub tabela options jest nil.
- FluidFidelity – Wartość FluidFidelity w wynikowej części.Domyślnie do Enum.FluidFidelity.Automatic jeśli opcja jest nieobecna lub tabela options jest nil.
Zwroty
CreatePlaceAsync
Klonuje miejsce za pomocą podanego templatePlaceID i zwraca PlaceId nowe miejsce, które możesz używać za pomocą TeleportService.Miejsce klonowania wyświetla się w ewidencji twórcy miejsca z podaną nazwą i opisem.
Zauważ, że miejsce na szablon musi mieć włączoną kopiowanie szablonu za pomocą ustawień miejsca. Nie możesz użyć tej metody do klonowania miejsc, których nie posiadać.
Nie zaleca się częstego używania tej API, szczególnie jeśli stworzone miejsca zawierają skrypty, ponieważ szybkie aktualizowanie kodu w dużej liczbie miejsc staje się nieopłacalne.Dla światów generowanych przez użytkowników rozważ serializację tworów użytkownika i zapisanie ich w DataStores zamiast tego.
Parametry
Nazwa nowego miejsce.
Opis nowego miejsce.
Zwroty
CreatePlaceInPlayerInventoryAsync
Parametry
Zwroty
GetAssetIdsForPackage
Zwraca tablicę ID zasobów, które znajdują się w określonym pakiecie.
Parametry
Zwroty
ID zasobów, które znajdują się w określonym pakiecie.
GetAudioMetadataAsync
Dostarcza odpowiednie metadane o konkretnym źródle dźwięku (artysta, tytuł, czas trwania, wpisywaćitp.).
Parametry
Lista identyfikatorów zasobów lub treści, z których należy odzyskać metadane. Maksymalny rozmiar party jest 30.
Zwroty
Lista tabel słownikowych w tej samej kolejności co prośba, gdzie każdy słownik zawiera następujące metadane dla swojego aktywa/treści:
AssetId (ciąg)
Title (ciąg)
Artist (ciąg)
Duration (liczba) w sekundach
AudioType ( Enum.AudioSubType )
Zauważ, że jeśli wystąpi błąd podczas pobierania metadanych dla żadnego z żądanych zasobów, na przykład nie istnieje ID zasobu, jego tablica słownika nadal znajduje się w zwroconej tabeli array, ale zawiera tylko pole AssetId na potrzeby celów odniesienia.Ponadto, jeśli nie można określić AudioType dla danego zasobu (być może dlatego, że jest to prywatne dźwięk), wynikowy słownik nie będzie zawierał wpisu AudioType.
Przykłady kodu
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
Funkcja ta zwraca szczegóły zawartości określonego pakietu.
Jeśli identyfikator pakietu nie istnieje, wyrzuca HTTP 400 (Bad Request) . Jeśli bundleId nie może zostać przekształcone na liczbę całkowitą, wyrzuca Unable to cast string to int64 .
Parametry
ID określonego pakietu.
Zwroty
Słownik z następującymi parami klucz-wartość zawierającymi szczegóły dotyczące określonego pakietu:
Id — ID pakietu (takie same jak przekazany argument bundleId )
Name — nazwa pakietu
Description — opis pakietu
BundleType — String reprezentujący Enum.BundleType , na przykład "BodyParts" lub "DynamicHead"
Items — Lista elementów w pakiet, każdy z szczegółami reprezentowanymi za pomocą następujących kluczy:
Id — ID przedmiotu
Name — nazwa przedmiotu
Type — typ przedmiotu takie jak "Asset" .
Przykłady kodu
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
Zwraca obiekt StandardPages, który zawiera nazwę i PlaceId miejsc w obecnym doświadczeniu.
Zwroty
Przykłady kodu
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
Pozwala na tworzenie zasobów w doświadczeniu dla użytkowników poprzez wysłanie dialogu publikacji.Gdy zostanie wezwany, prezentuje dialog użytkownikowi, pozwalając mu wprowadzić nazwę, opis i zapoznać się z przedmiotem.Po wysłaniu zapisuje zasób do wyposażenieużytkownika.Można go uruchomić tylko po stronie serwera.
Parametry
Użytkownik, który przesyła dziełozasobu.
Zasób, który ma zostać utworzony. Obecnie nie może zawierać skryptów ani niepublicznych elementów gniazda.
wpisywaćzasobu. Obecnie może być tylko Enum.AssetType.Model.
Zwroty
Para ID Enum.PromptCreateAssetResult i zasobów, jeśli powiodła się pomyślnie.
PromptImportAnimationClipFromVideoAsync
Parametry
Zwroty
SavePlaceAsync
Zapisuje stan obecnego miejsce. Funkcjonuje tylko w przypadku miejsc, które zostały utworzone za pomocą AssetService:CreatePlaceAsync() lub które mają włączoną API za pomocą ustawień miejsc.
Zwroty
SearchAudio
Zwraca obiekt AudioPages zawierający wynik wyszukiwać. Nie zwróci pól z pustymi wartościami.
Zauważ, że ta metoda ma niski limit żądań HTTP i może wystąpić błąd, więc zawsze powinna być owinięta w pcall() dla obsługi błędów.Możliwe komunikaty o błędach obejmują:
<th>Powód</th></tr></thead><tbody><tr><td>HTTP 429 (Zbyt wiele żądań)</td><td><code>Class.AssetService:SearchAudio()</code> został wezwany za wiele razy.</td></tr><tr><td>Nieoczekiwany typ dla danych, oczekiwana tablica uzyskała null</td><td>Argument kluczowy został przefiltrowany.</td></tr></tbody>
Komunikat o błędzie |
---|
Parametry
Zwroty
Przykłady kodu
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
}
}
--]]