AssetService 是一个非复制服务,可以处理 Roblox 网 API 上的资产相关查询。
概要
方法
创建一个新的 EditableImage 。
创建一个新的、空的 EditableMesh 。
创建一个新的 EditableImage 实例,其中包含指定的图像。
返回一个已从现有网格内容ID中创建的新 EditableMesh 实例。
创建一个具有指定网格ID的新 MeshPart 以及一个可选的表 of �idelity 值。
通过给出的 templatePlaceID 复制一个地方。
- CreatePlaceInPlayerInventoryAsync(player : Instance,placeName : string,templatePlaceID : number,description : string):number
通过给定的 templatePlaceID 克隆一个地方,并将其放入指定的玩家的物品栏。
返回指定包裹中包含的资产 ID 列表。
提供有关特定音频源的相关数据。
返回指定束的内容的详细信息。
返回一个 StandardPages 对象,其中包含当前体验中的地方名称和 PlaceId。
允许用户通过提示发布对话框创建体验内容。
保存当前场景方的状态。
查找音频资源,满足各种搜索条件。
属性
方法
CreateEditableImage
创建一个新的 EditableImage 。默认情况下,解析度设置为 512×512,但您可以使用方法的选项表指定不同的大小。
如果设备特定的可编辑内存预算已耗尽,创建失败,此方法将返回 nil 。
参数
含有方法控制的选项表:
- Size – A Vector2 ,该图像的宽度和高度指定。
返回
CreateEditableImageAsync
创建一个新的 EditableImage 实例,其中充满了提供的纹理。 非资产材质 ID 如 rbxthumb:// 不支持。 如果使用图像素材,它必须与并/或拥有体验创建者,或者它必须在体验中创建。 如果使用装置特定编辑可用内存预算,创建将失
参数
返回
一个新的 EditableImage 包含提供的图像。
CreateEditableMeshAsync
返回一个从现有网格内容ID创建的新 EditableMesh 实例。默认情况下,从此方法创建的 EditableMesh 将被固定为EditableMesh,该网格数据只能被修改,而不能添加或删除。1> 0> Class.EditableMesh0> 的大小固定为4> Class.EditableMesh4>
如果设备特定的编辑记忆预算已耗尽,创建将失败,此方法将返回 nil 。
参数
含有方法控制的选项表:
- FixedSize – 一个 bool 。默认值是 true ,并且返回的 0> Class.EditableMesh0> 不允许您添加或移除边,只能修改其值。将其设置为 FixedSize3> 如果需要更改网格顶ology,但不能使用更多内存。
返回
新的 EditableMesh 实例。
CreateMeshPartAsync
此方法创建一个 MeshPart 用指定的 CollisionFidelity 、 Class.MeshPart.RenderFidelity|Render
参数
含有方法控制的选项表:
- CollisionFidelity – 在结果部分中的 CollisionFidelity 值。默认为 Enum.CollisionFidelity.Default 如果选项丢失或选项表为 0> Options0> 。
- FluidFidelity – 在结果部分中的 FluidFidelity 值。默认为 Enum.FluidFidelity.Automatic 如果选项丢失或0> Options0> 表为 FluidFidelity3> 。
返回
CreatePlaceAsync
通过给出的 templatePlaceID 复制一个地方,并且返回新场景的 PlaceId,您可以使用 TeleportService 使用。 克隆的位置显示在位场景的创建者的库存中,显示名称和描述。
注意,模板位置必须有启用模板复制的位置设置。 您不能使用此方法来克隆您不拥有的位置。
不建议频繁使用此 API ,特别是如果创建的地方包含脚本,因为更新代码在大量的地方上快速变得不可行。对于用户生成的世界,请考虑将用户创建的内容 serialize 并保存在 DataStores 中。
参数
返回
CreatePlaceInPlayerInventoryAsync
参数
返回
GetAudioMetadataAsync
提供有关特定音频源的相关数据(艺术家、头衔、持续时间、输入等)。
参数
可以恢复元数据的资产或内容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 对。
SavePlaceAsync
保存当前场景方的状态。仅适用于通过 AssetService:CreatePlaceAsync() 创建的地方或者具有 API 通过置置设置启用的 API。
返回
SearchAudio
返回一个 AudioPages 对象,包含给出的搜索结果。不会返回空值为空的字段。
请注意,此方法有低的 HTTP 请求限制,并且可能会发生错误,因此它总是应该包含在 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
}
}
--]]