資產服務 是一種不會複製的服務,處理資產相關的查詢到 Roblox 網頁 API。
概要
方法
創建新的 EditableImage 。
建立新的、空 EditableMesh。
建立新 EditableImage 對象,內含所提供的圖像。
從現有網格內容 ID 創建了一個新的 EditableMesh 對象。
建立一個新的 MeshPart 具有指定網格 ID 和可選的穩定度值檢查表。
複製一個地方通過指定的 templatePlaceID 。
- CreatePlaceInPlayerInventoryAsync(player : Instance,placeName : string,templatePlaceID : number,description : string):number
通過指定的 templatePlaceID 複製一個地方,並將其放入指定的玩家的道具欄。
返回指定包裹中包含的資產 ID 列表。
提供有關特定音頻資原始碼的相關標籤。
返回指定組合的內容的細節。
返回 StandardPages 對象,其中包含名稱和 PlaceId 的地體驗。
允許使用者通過提示發布對話框創建資產。
儲存當前位空間的狀態。
尋找音頻資產,符合各種搜尋條件。
屬性
方法
CreateEditableImage
建立新的 EditableImage 。 預設解析度為 512×512,但您可以使用方法的選項表指定不同的大小。
如果裝置特定編輯可用記憶體經費已用盡,創建失敗,並且此方法將返回 nil。
參數
含有方法控制的選項表:
- Size – 一 Vector2 指定圖像的寬度和高度。
返回
CreateEditableImageAsync
創建新 EditableImage 對象,其內容包含所提供的紋理。非資產材質 ID 如 rbxthumb:// 支持。如果使用圖像素材,它必須與並/或擁有體驗創作者的關聯,或者它必須在體驗中創建。如果設
參閱 《<a href=\"#EditableImage\">Class.EditableImage</a> 的</a> 啟用編輯圖像對已發佈體驗的權限</a> 和 啟用權限</a> 部分,獲得特殊考慮,當使用此 API。
參數
返回
一個新的 EditableImage 包含提供的圖像。
CreateEditableMeshAsync
從現有網格內容 ID 創建新的 EditableMesh 對象。 預設情況下,從此方法創建的 EditableMesh 將會固定大小,因此網格資料只能修改,而不能添加或移除。一個固定大小的 EditableMesh 會消耗更少的內存,因此在可能的時候應該優
如果裝置特定編輯可用記憶體經費已用盡,創建將失敗,此方法將返回 nil。
參閱 啟用編輯網格對於已發佈的體驗 和 權限 部分的 EditableMesh 以獲得特殊考慮,當使用此 API。
參數
含有方法控制的選項表:
- FixedSize – 是 bool 。預設值是 true ,而返回的 0> Class.EditableMesh0> 將無法允許您添加或移除頂點,只能修改其值。將 3> false3> 設置為 FixedSize6> ,如果需要更
返回
新的 EditableMesh 實個體、實例。
CreateMeshPartAsync
此方法會創建一個 MeshPart 以具有指定的 CollisionFidelity、 Class.MeshPart.RenderFidel
參數
方法的控制指定為一個或多個控制項目的表:
- CollisionFidelity – 結果中的 CollisionFidelity 值。預設為 Enum.CollisionFidelity.Default 如果選項不存在或 0> Options0> 表為 CollisionFidelity3> 。
- RenderFidelity – 結果中的 RenderFidelity 值。預設為 Enum.RenderFidelity.Automatic 如果選項不存在或0> Options0> 表為 RenderFidelity3> 。
- FluidFidelity – 結果中的 FluidFidelity 值。預設為 Enum.FluidFidelity.Automatic 如果選項不存在或 0> Options0> 桌子為 FluidFidelity3> 。
返回
CreatePlaceAsync
複製一個地方通過指定的 templatePlaceID 並且返回新地方的 PlaceId,這是您可以使用 TeleportService 的新地方。複製地方會顯示在空間方創建者的道說明欄中,並且以 1>Class.DataModel.PlaceId|PlaceId|Class.DataModel.PlaceId|PlaceId|
注意,模板位置必須啟用模板複製通過位置設定。 您不能使用此方法來複製未擁有的位置。
不建議使用此 API ,特別是創建的地方包含指令碼,因為更新代碼在大量地方中快速變得不可行。對於使用者生成的世界,請考慮串行用戶創作並將它們儲存在 DataStores 裡。
參數
返回
CreatePlaceInPlayerInventoryAsync
參數
返回
GetAudioMetadataAsync
提供有關特定音樂資源的相關標籤 (藝術家、稱號、持續時間、類輸入等)。
參數
資產或內容 ID 的資源或內容ID 。最大一次批量大小為 30。
返回
範例程式碼
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
此功能返回指定組合的內容的詳細資訊。
如果組合包 ID 不存在,它會發生 HTTP 400 (Bad Request) 。如果 bundleId 不能轉換為整數,它會發生 Unable to cast string to int64 。
參數
指定組合的 ID。
返回
典型包含指定組合的詳細資訊的鑰匙值對:
Id — 組合包 ID (與已傳送的 bundleId 引數相同)
Name — 組合包名稱
Description — 組合包說明
BundleType — 代表 Enum.BundleType 的字串,例如 "BodyParts" 或 0>DynamicHead0>
Items — 組合包中的物品,每個都有代表以下鍵的細節:
Id — 項目 ID
Name — 項目名稱
Type — 物品類型,例如 "Asset" 。
範例程式碼
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
返回 StandardPages 對象,其中包含名稱和 PlaceId 的地體驗。
返回
範例程式碼
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
允許用戶在體驗中創建資產,提供發布對話框。當呼叫時,它會向用戶提供一個對話框,讓他們輸入名稱、說明和預覽素材。當提交時,它會將資產儲存在用戶的道具欄中。只能在伺服器側面執行。
參數
返回
如果成功,Enum.PromptCreateAssetResult和資產 ID 雙子。
SearchAudio
返回一個 AudioPages 對象,包含指定搜尋結果。將不會返回空值的欄位。
注意,此方法有低的 HTTP 請求限制,且可能會發生錯誤,因此它應該 sempre be pcall() 處理錯誤。可能發生的錯誤包括:
<tbody><tr><td>HTTP 429 (請求太多)</td><td><code>Class.AssetService:SearchAudio()</code> 已呼叫太多次。</td></tr><tr><td>未期待的資料類型,預期的資料集陣已為 null</td><td>關鍵字參數已過濾。</td></tr></tbody>
錯誤訊息 | 原因 |
---|
參數
返回
範例程式碼
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
}
}
--]]