AssetService
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Varlık Hizmeti Roblox web API'ye ilgili varlıkla ilgili sorguları ele alan yeniden yapılmayan bir hizmettir.
Özet
Özellikler
Yöntemler
Yeni bir EditableImage oluşturur.
Yeni ve boş bir EditableMesh oluşturur.
Verilen nesneden yeni bir varlık Roblox'a yükler.
- CreateAssetVersionAsync(object : Object,assetType : Enum.AssetType,assetId : number,requestParameters : Dictionary):Tuple
Verilen nesneden mevcut bir varlık için yeni bir sürüm yükler.
Verilen görüntü ile doldurulmuş yeni bir EditableImage nesne oluşturur.
Mevcut bir çerçeve içeriği ID'sinden yeni bir EditableMesh nesne oluşturarak mevcut bir mesheiden yeni bir nesne döndürür.
Belirtilen bir çerçeve kimliği ve isteğe bağlı bir sadakat değeri tablosu ile yeni bir MeshPart oluşturur.
Verilen templatePlaceID aracılığıyla bir yeri klonlar.
- CreatePlaceInPlayerInventoryAsync(player : Instance,placeName : string,templatePlaceID : number,description : string):number
Verilen templatePlaceID aracılığıyla bir yeri klonlar ve verilen oyuncunun envanterine yerleştirir.
Belirtilen pakette bulunan bir dizi varlık kimliği döndürür.
Belirli bir ses kaynakhakkında ilgili metadatlar sağlar.
Belirtilen setiçeriğinin detaylarını döndürür.
Mevcut deneyim içindeki isim ve PlaceId yerlerin adını içeren bir StandardPages nesne döndürür.
Yayın diyaloğu yönlendirerek kullanıcıların deneyim içi varlık oluşturmasına izin verir.
Mevcut dünyadurumunu kaydeder.
Çeşitli arama kriterlerine uyan ses kaynaklarını bulur.
Özellikler
Yöntemler
CreateEditableImage
Yeni bir EditableImage oluşturur. Varsayılan olarak, çözünürlük 512×512 olarak ayarlanır, ancak yöntemin seçenek tablosunu kullanarak farklı bir boyut belirleyebilirsiniz.
Cihaz spesifik düzenlenebilir hafıza bütçesi tükendiyse, oluşturma başarısız olur ve bu yöntem nil döner.
Parametreler
Yöntem için kontrolleri içeren seçenek tablosu:
- Size – İstediği görüntü genişliğini ve yüksekliğini belirten bir Vector2
Dönüşler
CreateEditableMesh
Yeni ve boş bir EditableMesh oluşturur.Zirveler, üçgenler ve özellikleri ona dinamik olarak eklenebilir.Cihaz spesifik düzenlenebilir hafıza bütçesi tükendiyse, oluşturma başarısız olur ve bu yöntem nil döner.
Parametreler
Oluşturulan EditableMesh için seçenekleri içeren tablo.Şu anda hiçbir seçenek mevcut değil çünkü FixedSize boş düzenlenebilir örnekler için daima false olacak.
Dönüşler
CreateSurfaceAppearance
Parametreler
Dönüşler
CreateAssetAsync
Verilen nesneden yeni bir varlık Roblox'a yükler.
Şu anda, bu yöntem yalnızca yerel olarak yüklenen plug-inlerde ve ilk önce uyarı vermeden varlıklar yüklenmeden kullanılabilir.
Parametreler
Bir varlık olarak oluşturulacak nesne.
Şu anda desteklenen türler:
Varlık metadatası içeren seçenek tablosu:
- Name – Varlığın adı bir dize olarak. Varsayılan değer [object.Name] .
- Description – Varlığın bir dize olarak açıklaması. Varsayılan değeri "Created with AssetService:CreateAssetAsync" .
- CreatorId – Varlık yaratıcısının kimliği bir sayı olarak.Plugin konteksi için kaydedilmiş Roblox Studio kullanıcısına varsayım yapar.Açık Bulut Luau İnfazı için gereklidir.
- CreatorType – Enum.AssetCreatorType - varlık yaratıcısı türünü gösterenEklenti bağlamında varsayılan Enum.AssetCreatorType.User .Açık Bulut Luau İnfazı için gereklidir.
Dönüşler
Başarılıysa Enum.CreateAssetResult ve varlık kimlik çifti.
Kod Örnekleri
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
Verilen nesneden mevcut bir varlık için yeni bir sürüm yükler.
Şu anda, bu yöntem yalnızca yerel olarak yüklenen plug-inlerde ve ilk önce uyarı vermeden varlıklar yüklenmeden kullanılabilir.
Parametreler
Bir varlık olarak oluşturulacak nesne.
Şu anda desteklenen türler:
Yeni sürüm için varlığın ID'si.
Varlık metadatası içeren seçenek tablosu:
- Name – A string . Varlığın adı. Varsayılan: object.Name.
- Description – Bir string . Varlığın açıklaması.Varsayılan: "AssetService:CreateAssetAsync ile oluşturuldu".
- CreatorId – A number .Varlık yaratıcısının kimliği.Varsayılan: Plugin context için kaydedilmiş Roblox Studio kullanıcısı.Açık Bulut Luau İnfazı için gereklidir.
- CreatorType – A Enum.AssetCreatorType . Asset yaratıcının türü. Varsayılan: Enum.AssetCreatorType.User Plugin bağlamında. Açık Bulut Luau İnfazı için gerekli.
Dönüşler
Başarılıysa, Enum.CreateAssetResult ve varlık sürüm numarası çifti.
Kod Örnekleri
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
Verilen dokuyla doldurulmuş yeni bir EditableImage nesne oluşturur.rbxthumb:// gibi varlık olmayan doküman tekstürleri ID'leri desteklenir.Bir görüntü öğesi kullanılıyorsa, deneyimin bir yaratıcısıyla ilişkilendirilmeli veya sahiplenilmeli veya deneyimin içinde oluşturulmuş olmalıdır.Cihaz spesifik düzenlenebilir hafıza bütçesi tükendiyse, oluşturma başarısız olur ve bu yöntem nil döner.
Bu API'yi kullanırken özel düşünceler için EditableImage belgelerine bakın.
Parametreler
Dışarıya veya dünyaiçinde bir nesne olarak depolanan varlık içeriğine referans, desteklenen Enum.ContentSourceType değerlerden tek bir değeri sararak.
Oluşturulan EditableImage için seçenekleri bulunduran tablo. Şu anda yeniden boyutlandırma ile Size desteklenmediğinden seçenekler mevcut değil.
Dönüşler
Verilen görüntü içeren yeni EditableImage .
CreateEditableMeshAsync
Mevcut bir EditableMesh veya örgü EditableMesh kimliğinden yaratılan yeni bir Content nesnesini döndürür.Varsayılan olarak, bu yöntemden oluşturulan bir EditableMesh öntanımlı olarak sabit bir boyuta sahip olacak ve mesh verileri yalnızca değiştirilebilir, eklenemez veya kaldırılamaz.Konumlandırılmış bir boyut EditableMesh daha az bellek tüketir ve mümkün olduğunda tercih edilmelidir.
Cihaz spesifik düzenlenebilir hafıza bütçesi tükendiyse, oluşturma başarısız olur ve bu yöntem nil döner.
Bu API'yi kullanırken özel düşünceler için Yayınlanmış Deneyimler için Düzenlenebilir Ağaç Etkinleştirme ve İzinler bölümlerini görün ve bu API'nin kullanımıyla ilgili özel düşünceler için EditableMesh özel düşünceler için.
Parametreler
Dışarıya veya dünyaiçinde bir nesne olarak depolanan varlık içeriğine referans, desteklenen Enum.ContentSourceType değerlerden tek bir değeri sararak.
Yöntem için kontrolleri içeren seçenek tablosu:
- FixedSize – A bool .Varsayılan değer true , ve döndürülen EditableMesh , sadece değerlerini değiştirmene izin vermeyecek, sadece zirveleri eklemek veya kaldırmak.false özelliği değiştirme yeteneğinin gerekli olduğu durumda, daha fazla bellek kullanımı pahasına daha fazla değiştirilebilir hale getirin.
Dönüşler
Yeni EditableMesh durum.
CreateMeshPartAsync
Bu yöntem belirtilen bir MeshPart , CollisionFidelity ve RenderFidelity ile bir FluidFidelity oluşturur.Çünkü MeshPart.MeshId yalnızca okuma içindir, bu yöntem mevcut bir MeshPart kopyalamak zorunda olmadan herhangi bir meshe ID ile bir meshe oluşturmak için kullanılır, scriptler aracılığıyla.Oluşturma başarısız olursa hatalar atar.
Parametreler
Dışarıya veya dünyaiçinde bir nesne olarak depolanan varlık içeriğine referans, desteklenen Enum.ContentSourceType değerlerden tek bir değeri sararak.
Yöntem için bir veya daha fazla kontrol bulunduran seçenek tablosu:
- CollisionFidelity – Sonuç parçasındaki CollisionFidelity değeri.Seçenek yoksa veya tablosu boşsa varsayılan değer olur.
- RenderFidelity – Sonuç parçasındaki RenderFidelity değeri.Seçenek yoksa veya tablosu boşsa varsayılan değer olur.
- FluidFidelity – Sonuç parçasındaki FluidFidelity değeri.Seçenek yoksa veya tablosu boşsa varsayılan değer olur.
Dönüşler
CreatePlaceAsync
Verilen templatePlaceID aracılığıyla bir yeri klonlar ve PlaceId ile kullanabileceğiniz yeni dünyaTeleportService kısmını iade eder.Klonlama yeri, verilen ad ve açıklama ile dünyayaratıcısının envanterinde görüntülenir.
Şablon yerinin yer ayarları aracılığıyla şablon kopyalama etkinleştirilmiş olması gerektiğini unutmayın. Sahip olmadığınız yerleri klonlamak için bu yöntemi kullanamazsınız.
Bu API'nin sık kullanımı önerilmez, özellikle de oluşturulan yerler kodları içeriyorsa, çünkü kodu büyük bir sayıda yerde hızlı bir şekilde güncelleştirmek mümkün değildir.Kullanıcı tarafından oluşturulan dünyalar için, yerine kullanıcı yaratımlarını seri hale getirmeyi ve bunları DataStores kaydetmeyi düşünün.
Parametreler
Yeni dünyaadı.
Yeni dünyaaçıklaması.
Dönüşler
CreatePlaceInPlayerInventoryAsync
Parametreler
Dönüşler
GetAssetIdsForPackage
Belirtilen pakette bulunan bir dizi varlık kimliği döndürür.
Parametreler
Dönüşler
Belirtilen pakete dahil olan varlık kimlikleri.
GetAudioMetadataAsync
Belirli bir ses kaynağı hakkında ilgili metadatlar sağlar (sanatçı, başlık, süre, yazvb.).
Parametreler
Metadatı almak için kullanılan varlık veya içerik kimliklerinin dizi boyutu maksimum 30'dur.
Dönüşler
Talebin aynı sırasındaki sözlük tablolarının dizilimi, her sözlüğün varlığı/içeriği için aşağıdaki metadatları içeren:
AssetId (dizi)
Title (dizi)
Artist (dizi)
Duration (sayı) saniye içinde
AudioType ( Enum.AudioSubType )
Örneğin, talep edilen varlıkların herhangi biri için meta veri alınırken bir hata oluşursa, örneğin varlık kimliği mevcut değilse, sözlük tablosu hala iade edilen dizeye dahil edilir, ancak yalnızca referans amaçlı AssetId alanı içerir.Ayrıca, eğer belli bir varlık için AudioType belirlenemiyorsa (belki de özel bir ses olduğundan), sonuçlu sözlük bir AudioType girişi içermeyecektir.
Kod Örnekleri
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
Bu işlev, belirtilen setiçeriğinin detaylarını döndürür.
Paket kimliği mevcut değilse, HTTP 400 (Bad Request) atar. Eğer bundleId bir tamsayıya dönüştürülemezse, Unable to cast string to int64 atar.
Parametreler
Belirtilen setID'si.
Dönüşler
Belirtilen sethakkında ayrıntılar içeren aşağıdaki anahtar-değer çiftleri sözlüğü:
Id — Paket Kimliği (geçen bundleId argümanı ile aynı)
Name — Paket adı
Description — Paket açıklaması
BundleType — Örneğin Enum.BundleType veya "DynamicHead" temsil eden dize, örneğin "BodyParts" veya
Items — Paket içindeki öğelerin dizisi, her biri aşağıdaki anahtarlarla temsil edilen ayrıntılarla:
Id — Eşya ID'si
Name — Eşya adı
Type — "Asset" gibi öğe türü.
Kod Örnekleri
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
Mevcut deneyim içindeki isim ve PlaceId yerlerin adını içeren bir StandardPages nesne döndürür.
Dönüşler
Kod Örnekleri
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
Yayın diyaloğu yönlendirerek kullanıcıların deneyim içi varlık oluşturmasına izin verir.Çağrıldığında, kullanıcıya bir diyalog sunar, böylece bir isim, açıklama ve varlığın önizlemesini girerler.Gönderildikten sonra, varlığı kullanıcının envanterine kaydedilir.Sadece sunucu tarafında çağrılabilir.
Parametreler
Bir varlık oluşturma gönderen kullanıcı.
Oluşturulacak varlık. Şu anda, senaryoları veya halka açık olmayan varlıkları yerleştiremez.
Varlık yaz. Şu anda sadece Enum.AssetType.Model olabilir.
Dönüşler
Başarılıysa Enum.PromptCreateAssetResult ve varlık kimlik çifti.
PromptImportAnimationClipFromVideoAsync
Parametreler
Dönüşler
SavePlaceAsync
Mevcut dünyadurumunu kaydeder. Yalnızca AssetService:CreatePlaceAsync() ile oluşturulan yerler veya yer ayarları aracılığıyla API'nin etkinleştirildiği yerler için çalışır.
Dönüşler
SearchAudio
Verilen aramanın sonucunu içeren bir AudioPages nesne döndürür. Boş değerler içeren alanları geri vermez.
Bu yöntemin düşük bir HTTP istek sınırı olduğunu ve bir hata atabileceğini unutmayın, bu nedenle hata durumunda daima pcall() içine sarılmalıdır.Olası hata mesajları şunları içerir:
<th>Neden</th></tr></thead><tbody><tr><td>HTTP 429 (Çok Fazla İstek)</td><td><code>Class.AssetService:SearchAudio()</code> çok kez çağrıldı.</td></tr><tr><td>Veriler için beklenmeyen tür, beklenen dizi null aldı</td><td>Anahtar kelime argümanı filtrelenmiştir.</td></tr></tbody>
Hata Mesajı |
---|
Parametreler
Dönüşler
Kod Örnekleri
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
}
}
--]]