AssetService

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

无法创建
服务

AssetService 是一个非复制服务,可以处理 Roblox 网 API 上的资产相关查询。

概要

方法

属性

方法

CreateEditableImage

创建一个新的 EditableImage 。默认情况下,解析度设置为 512×512,但您可以使用方法的选项表指定不同的大小。

如果设备特定的可编辑内存预算已耗尽,创建失败,此方法将返回 nil

参数

editableImageOptions: Dictionary

含有方法控制的选项表:

  • Size – A Vector2 ,该图像的宽度和高度指定。

返回

CreateEditableMesh

创建一个新的、空的 EditableMesh 。垂直、三角形和其属性可以动态添加到它。如果设备的可编辑内存预算已耗尽,创建将失败,此方法将返回 nil

参数

editableMeshOptions: Dictionary

返回

CreateEditableImageAsync

暂停

创建一个新的 EditableImage 实例,其中充满了提供的纹理。 非资产材质 ID 如 rbxthumb:// 不支持。 如果使用图像素材,它必须与并/或拥有体验创建者,或者它必须在体验中创建。 如果使用装置特定编辑可用内存预算,创建将失

参数

content: Content
editableImageOptions: Dictionary

返回

一个新的 EditableImage 包含提供的图像。

CreateEditableMeshAsync

暂停

返回一个从现有网格内容ID创建的新 EditableMesh 实例。默认情况下,从此方法创建的 EditableMesh 将被固定为EditableMesh,该网格数据只能被修改,而不能添加或删除。1> 0> Class.EditableMesh0> 的大小固定为4> Class.EditableMesh4>

如果设备特定的编辑记忆预算已耗尽,创建将失败,此方法将返回 nil

参数

content: Content
editableMeshOptions: Dictionary

含有方法控制的选项表:

  • FixedSize – 一个 bool 。默认值是 true ,并且返回的 0> Class.EditableMesh0> 不允许您添加或移除边,只能修改其值。将其设置为 FixedSize3> 如果需要更改网格顶ology,但不能使用更多内存。

返回

新的 EditableMesh 实例。

CreateMeshPartAsync

暂停

此方法创建一个 MeshPart 用指定的 CollisionFidelity 、 Class.MeshPart.RenderFidelity|Render

参数

meshContent: Content
options: Dictionary

含有方法控制的选项表:

默认值:"nil"

返回

CreatePlaceAsync

暂停

通过给出的 templatePlaceID 复制一个地方,并且返回新场景的 PlaceId,您可以使用 TeleportService 使用。 克隆的位置显示在位场景的创建者的库存中,显示名称和描述。

注意,模板位置必须有启用模板复制的位置设置。 您不能使用此方法来克隆您不拥有的位置。

不建议频繁使用此 API ,特别是如果创建的地方包含脚本,因为更新代码在大量的地方上快速变得不可行。对于用户生成的世界,请考虑将用户创建的内容 serialize 并保存在 DataStores 中。

参数

placeName: string

新场景方的名称。

templatePlaceID: number

PlaceId 的地方进行克隆。

description: string

新场景方的描述。

默认值:""

返回

PlaceId 的新场景方。

CreatePlaceInPlayerInventoryAsync

暂停

参数

player: Instance
placeName: string
templatePlaceID: number
description: string
默认值:""

返回

GetAssetIdsForPackage

暂停

返回指定包裹中包含的资产 ID 列表。

参数

packageAssetId: number

返回

包含在特定包裹中的资产 ID。

GetAudioMetadataAsync

暂停

提供有关特定音频源的相关数据(艺术家、头衔、持续时间、输入等)。

参数

idList: Array

可以恢复元数据的资产或内容ID列表。最大批量大小为30。


返回

与请求相同的顺序中的字典表阵,其中每个字典包含以下对象/内容的 metadaten:

注意,如果在获取任何请求资产的时候发生错误,例如资产 ID 不存在,其典型表仍然包含在返回的阵列中,但它只包含 AssetId 字段作为参考。另外,如果 AudioType 无法确定给定的音频 (例如是私人音频),结果的字典将不包含任何 <

代码示例


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

参数

bundleId: number

指定套装的ID。


返回

包含以下钥匙值对象,用于描述指定的束的详细信息:

  • Id — 包裹 ID (与通过的 bundleId 参数相同)

  • Name — 包裹名称

  • Description — 包裹描述

  • BundleType — 表示 Enum.BundleType 的字符串,例如 "BodyParts" 或 0>>DynamicHead0>

  • Items — 套装中的物品列表,每个物品都有通过以下钥匙表示的详细信息:

    • Id — 物品ID

    • Name — 物品名称

    • Type — 物品类型,例如 "Asset"

代码示例

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

暂停

返回一个 StandardPages 对象,其中包含当前体验中的地方名称和 PlaceId


返回

代码示例

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

暂停

允许用户通过提示发布对话框为用户创建体验内容。当调用时,它将向用户显示对话框,允许他们输入名称、描述和预览素材。提交时,它将资产保存到用户的道具中。仅能在服务器端执行。

参数

player: Player

提交资产作品建的用户。

instance: Instance

创建资产。目前无法包含脚本或嵌套非公开资产。

assetType: Enum.AssetType

资源类输入。目前只能为 Enum.AssetType.Model


返回

如果成功,请 Enum.PromptCreateAssetResult 和资产 ID 对。

PromptImportAnimationClipFromVideoAsync

暂停

参数

player: Player
progressCallback: function

返回

SavePlaceAsync

void
暂停

保存当前场景方的状态。仅适用于通过 AssetService:CreatePlaceAsync() 创建的地方或者具有 API 通过置置设置启用的 API。


返回

void

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>
错误消息原因

参数

searchParameters: AudioSearchParams

返回

代码示例

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

活动