AssetService

Pokaż przestarzałe

*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.

Brak możliwości tworzenia
Usługa

Usługa zasobów to usługa niezareplikowana, która obsługuje zapytania związane z zasobami do API web Roblox.

Podsumowanie

Metody

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

editableImageOptions: Dictionary

Tabela opcji zawierająca kontrolki dla metody:

  • Size – A Vector2 określające pożądaną szerokość i wysokość obrazu.
Wartość domyślna: ""

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

editableMeshOptions: Dictionary

Tabela zawierająca opcje dla utworzonego EditableMesh .Obecnie nie ma dostępnych opcji, ponieważ FixedSize zawsze będzie false dla pustych edytowanych siatek.

Wartość domyślna: ""

Zwroty

CreateSurfaceAppearance

Parametry

content: Dictionary
Wartość domyślna: ""

Zwroty

CreateAssetAsync

Wynik

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

object: Object

Obiekt, który ma zostać utworzony jako aktyw.

Wartość domyślna: ""
assetType: Enum.AssetType

Obecnie wspierane typy to:

Wartość domyślna: ""
requestParameters: Dictionary

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.
  • CreatorTypeEnum.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.
Wartość domyślna: "nil"

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.

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

Wynik

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

object: Object

Obiekt, który ma zostać utworzony jako aktyw.

Wartość domyślna: ""
assetType: Enum.AssetType

Obecnie wspierane typy to:

Wartość domyślna: ""
assetId: number

ID zasobu dla nowej wersji.

Wartość domyślna: ""
requestParameters: Dictionary

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.
  • IsPackage – A bool . Tylko dla wpisywaćEnum.AssetType.Model. Domyślnie: prawda.
Wartość domyślna: "nil"

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.

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

Wynik

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

content: Content

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.

Wartość domyślna: ""
editableImageOptions: Dictionary

Tabela zawierająca opcje dla utworzonego EditableImage . Obecnie nie są dostępne żadne opcje, ponieważ zmiana rozmiaru za pomocą Size nie jest wspierana.

Wartość domyślna: ""

Zwroty

Nowy EditableImage zawierający dostarczony obraz.

CreateEditableMeshAsync

Wynik

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

content: Content

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.

Wartość domyślna: ""
editableMeshOptions: Dictionary

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.
Wartość domyślna: ""

Zwroty

Nowa instancja EditableMesh.

CreateMeshPartAsync

Wynik

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

meshContent: Content

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.

Wartość domyślna: ""
options: Dictionary

Tabela opcji zawierająca jedną lub więcej kontroli dla metody:

Wartość domyślna: "nil"

Zwroty

CreatePlaceAsync

Wynik

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

placeName: string

Nazwa nowego miejsce.

Wartość domyślna: ""
templatePlaceID: number

PlaceId z miejsca do sklonowania

Wartość domyślna: ""
description: string

Opis nowego miejsce.

Wartość domyślna: ""

Zwroty

PlaceId z nowego miejsce.

CreatePlaceInPlayerInventoryAsync

Wynik

Parametry

player: Instance
Wartość domyślna: ""
placeName: string
Wartość domyślna: ""
templatePlaceID: number
Wartość domyślna: ""
description: string
Wartość domyślna: ""

Zwroty

GetAssetIdsForPackage

Wynik

Zwraca tablicę ID zasobów, które znajdują się w określonym pakiecie.

Parametry

packageAssetId: number
Wartość domyślna: ""

Zwroty

ID zasobów, które znajdują się w określonym pakiecie.

GetAudioMetadataAsync

Wynik

Dostarcza odpowiednie metadane o konkretnym źródle dźwięku (artysta, tytuł, czas trwania, wpisywaćitp.).

Parametry

idList: Array

Lista identyfikatorów zasobów lub treści, z których należy odzyskać metadane. Maksymalny rozmiar party jest 30.

Wartość domyślna: ""

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

Wynik

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

bundleId: number

ID określonego pakietu.

Wartość domyślna: ""

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

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

Wynik

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.

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

Wynik

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

player: Player

Użytkownik, który przesyła dziełozasobu.

Wartość domyślna: ""
instance: Instance

Zasób, który ma zostać utworzony. Obecnie nie może zawierać skryptów ani niepublicznych elementów gniazda.

Wartość domyślna: ""
assetType: Enum.AssetType

wpisywaćzasobu. Obecnie może być tylko Enum.AssetType.Model.

Wartość domyślna: ""

Zwroty

Para ID Enum.PromptCreateAssetResult i zasobów, jeśli powiodła się pomyślnie.

PromptImportAnimationClipFromVideoAsync

Wynik

Parametry

player: Player
Wartość domyślna: ""
progressCallback: function
Wartość domyślna: ""

Zwroty

SavePlaceAsync

()
Wynik

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

Wynik

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

searchParameters: AudioSearchParams
Wartość domyślna: ""

Zwroty

Przykłady kodu

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

Zdarzenia