AssetService
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
Dịch vụ tài sản là một dịch vụ không lặp lại xử lý các truy vấn liên quan đến tài sản đến API web Roblox.
Tóm Tắt
Phương Pháp
Tạo một mới EditableImage .
Tạo một mới, trống EditableMesh .
Tải một tài sản mới vào Roblox từ đối tượng đã cho.
- CreateAssetVersionAsync(object : Object,assetType : Enum.AssetType,assetId : number,requestParameters : Dictionary):Tuple
Tải lên phiên bản mới cho một tài sản hiện có từ đối tượng đã cho.
Tạo một đối tượng mới EditableImage được lấp đầy với hình ảnh đã cho.
Trả về một đối tượng mới EditableMesh được tạo từ một ID nội dung lưới hiện có.
Tạo một mới MeshPart với một ID lưới được định và một bảng tùy chọn các giá trị trung thành.
Nhân bản một nơi thông qua templatePlaceID được cho.
- CreatePlaceInPlayerInventoryAsync(player : Instance,placeName : string,templatePlaceID : number,description : string):number
Nhân bản một nơi thông qua templatePlaceID được cung cấp và đặt nó vào kho đồ của người chơi được cho.
Trả về một array của ID tài sản được chứa trong một gói cụ thể.
Cung cấp metadata liên quan về một nguồn âm thanh cụ thể.
Trả chi tiết về nội dung của gói được chỉ định.
Trả về một đối tượng StandardPages chứa tên và PlaceId của các vị trí trong trải nghiệm hiện tại.
Cho phép tạo tài sản trong trải nghiệm cho người dùng bằng cách yêu cầu một hộp thoại xuất bản.
Lưu trạng thái của địa điểmhiện tại.
Tìm tài nguyên âm thanh phù hợp với nhiều tiêu chí tìm kiếm.
Thuộc Tính
Phương Pháp
CreateEditableImage
Tạo một đối tượng mới EditableImage. Mặc định, độ phân giải được đặt tại 512×512, nhưng bạn có thể xác định một kích thước khác bằng cách sử dụng bảng lựa chọn của phương pháp.
Nếu ngân sách bộ nhớ có thể chỉnh sửa cụ thể cho thiết bị đã hết, quá trình tạo thất bại và phương thức này trả về nil .
Tham Số
Bảng tùy chọn chứa các điều khiển cho phương thức:
- Size – Một Vector2 xác định chiều rộng và chiều cao mong muốn của hình ảnh.
Lợi Nhuận
CreateEditableMesh
Tạo một mới, trống EditableMesh .Các đỉnh, tam giác và thuộc tính của chúng có thể được thêm vào nó một cách năng động.Nếu ngân sách bộ nhớ có thể chỉnh sửa cụ thể cho thiết bị đã hết, quá trình tạo sẽ thất bại và phương thức này sẽ trả về nil .
Tham Số
Bảng chứa các tùy chọn cho EditableMesh.Hiện tại không có lựa chọn nào khả dụng vì FixedSize sẽ luôn luôn là false đối với lưới có thể chỉnh sửa trống.
Lợi Nhuận
CreateSurfaceAppearance
Tham Số
Lợi Nhuận
CreateAssetAsync
Tải một tài sản mới vào Roblox từ đối tượng đã cho.
Hiện tại, phương pháp này chỉ có thể được sử dụng trong các plugin được tải địa phương và tải tài sản mà không yêu cầu trước tiên.
Tham Số
Vật phẩm được tạo thành tài sản.
Loại hiện được hỗ trợ là:
Bảng lựa chọn chứa thông tin khai thác tài sản:
- Name – Tên của tài sản như một chuỗi. Mặc định là [object.Name] .
- Description – Mô tả về tài sản như một chuỗi. Mặc định là "Created with AssetService:CreateAssetAsync" .
- CreatorId – ID của người tạo tài sản như một số.Mặc định cho người dùng Roblox Studio đã đăng nhập cho bối cảnh Plugin.Yêu cầu cho Open Cloud Luau Execution context.
- CreatorType – Enum.AssetCreatorType để chỉ ra loại tạo nhà sáng tạotài sản.Mặc định thành Enum.AssetCreatorType.User trong bối cảnh Plugin.Yêu cầu cho Open Cloud Luau Execution context.
Lợi Nhuận
Cặp ID Enum.CreateAssetResult và tài sản nếu thành công.
Mẫu mã
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
Tải lên phiên bản mới cho một tài sản hiện có từ đối tượng đã cho.
Hiện tại, phương pháp này chỉ có thể được sử dụng trong các plugin được tải địa phương và tải tài sản mà không yêu cầu trước tiên.
Tham Số
Vật phẩm được tạo thành tài sản.
Loại hiện được hỗ trợ là:
ID của tài sản cho phiên bản mới.
Bảng lựa chọn chứa thông tin khai thác tài sản:
- Name – Một string . Tên của tài sản. Mặc định: object.Name.
- Description – Một string . Mô tả về tài sản. Mặc định: "Tạo với Dịch vụ Tài sản:Tạo tài sảnAsync".
- CreatorId – A number .ID của người tạo tài nhà sáng tạo.Mặc định: Người dùng Roblox Studio đã đăng nhập cho ngữ cảnh Plugin.Yêu cầu cho Open Cloud Luau Execution context.
- CreatorType – Một Enum.AssetCreatorType . Loại tạo nhà sáng tạotài sản. Mặc định: Enum.AssetCreatorType.User trong bối cảnh Plugin. Yêu cầu cho bối cảnh Thực thi Đám mây Mở.
Lợi Nhuận
Cặp số phiên bản Enum.CreateAssetResult và tài sản thành công.
Mẫu mã
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
Tạo một đối tượng mới EditableImage được lấp đầy với chất liệu được cho.Các ID kết cấu không phải tài sản như rbxthumb:// được hỗ trợ.Nếu sử dụng một tài sản hình ảnh, nó phải được liên kết và/hoặc sở hữu bởi một người tạo ra trải nghiệm, hoặc nó phải được tạo ra bên trong trải nghiệm.Nếu ngân sách bộ nhớ có thể chỉnh sửa cụ thể cho thiết bị đã hết, quá trình tạo sẽ thất bại và phương thức này sẽ trả về nil .
Xem tài liệu EditableImage đặc biệt khi sử dụng API này.
Tham Số
Tham chiếu đến nội dung tài sản được lưu bên ngoài hoặc là một đối tượng trong địa điểm, bọc một giá trị duy nhất của một trong các giá trị Enum.ContentSourceType được hỗ trợ.
Bảng chứa các tùy chọn cho EditableImage. Hiện tại không có tùy chọn nào khả dụng vì không hỗ trợ thay đổi kích thước qua Size.
Lợi Nhuận
Một mới EditableImage chứa hình ảnh được cung cấp.
CreateEditableMeshAsync
Trả về một đối tượng mới EditableMesh được tạo từ một ID hiện có EditableMesh hoặc mesh Content .Mặc định, một EditableMesh được tạo từ phương pháp này sẽ có kích thước cố định như vậy dữ liệu lưới chỉ có thể được chỉnh sửa, không thêm hoặc bớt.Một kích thước cố định EditableMesh tiêu thụ ít bộ nhớ hơn và nên được ưu tiên khi có thể.
Nếu ngân sách bộ nhớ có thể chỉnh sửa cụ thể cho thiết bị đã hết, quá trình tạo sẽ thất bại và phương thức này sẽ trả về nil .
Xem phần Kích hoạt EditableMesh cho Trải nghiệm được công bố và Quyền của EditableMesh để có những xem xét đặc biệt khi sử dụng API này.
Tham Số
Tham chiếu đến nội dung tài sản được lưu bên ngoài hoặc là một đối tượng trong địa điểm, bọc một giá trị duy nhất của một trong các giá trị Enum.ContentSourceType được hỗ trợ.
Bảng tùy chọn chứa các điều khiển cho phương thức:
- FixedSize – A bool .Giá trị mặc định là true , và EditableMesh trả về sẽ không cho phép bạn thêm hoặc xóa các cạnh, chỉ sửa giá trị của chúng.Chỉnh thành false nếu cần thay đổi kết cấu lưới, với chi phí sử dụng nhiều bộ nhớ hơn.
Lợi Nhuận
Ví dụ mới EditableMesh ví dụ / trường hợp.
CreateMeshPartAsync
Phương pháp này tạo ra một MeshPart với một CollisionFidelity được định nghĩa, RenderFidelity , và FluidFidelity .Bởi vì MeshPart.MeshId được đọc chỉ đọc, phương pháp này là để tạo một lưới với bất kỳ ID lưới nào thông qua các kịch bản, mà không cần phải sao chép một lưới hiện có MeshPart .Nó ném lỗi nếu quá trình tạo thất bại.
Tham Số
Tham chiếu đến nội dung tài sản được lưu bên ngoài hoặc là một đối tượng trong địa điểm, bọc một giá trị duy nhất của một trong các giá trị Enum.ContentSourceType được hỗ trợ.
Bảng tùy chọn chứa một hoặc nhiều điều khiển cho phương thức:
- CollisionFidelity – Giá trị của CollisionFidelity trong phần kết quả.Mặc định là nếu tùy chọn không có hoặc bảng bị vắng mặt.
- RenderFidelity – Giá trị của RenderFidelity trong phần kết quả.Mặc định là nếu tùy chọn không có hoặc bảng bị vắng mặt.
- FluidFidelity – Giá trị của FluidFidelity trong phần kết quả.Mặc định là nếu tùy chọn không có hoặc bảng bị vắng mặt.
Lợi Nhuận
CreatePlaceAsync
Nhân bản một nơi thông qua templatePlaceID và trả về PlaceId của địa điểmmới, mà bạn có thể sử dụng với TeleportService .Vị trí nhân bản hiển thị trong túi đồ của người tạo ra địa điểmvới tên và miêu tảtả đã cho.
Lưu ý rằng vị trí mẫu phải có sao chép mẫu bật qua cài đặt vị trí. Bạn không thể sử dụng phương pháp này để sao chép các vị trí mà bạn không sở hữu.
Không nên sử dụng thường xuyên API này, đặc biệt là nếu các địa điểm được tạo bao gồm các kịch bản, vì việc cập nhật mã trong một lượng lớn các địa điểm trở nên không thể thực hiện được.Đối với thế giới được tạo bởi người dùng, hãy xem xét serialize các sáng tạo của người dùng và lưu chúng vào DataStores thay vào đó.
Tham Số
Tên của địa điểmmới.
Mô tả về địa điểmmới.
Lợi Nhuận
CreatePlaceInPlayerInventoryAsync
Tham Số
Lợi Nhuận
GetAssetIdsForPackage
Trả về một array của ID tài sản được chứa trong một gói cụ thể.
Tham Số
Lợi Nhuận
ID tài sản nằm trong một gói cụ thể.
GetAudioMetadataAsync
Cung cấp metadata liên quan đến một nguồn âm thanh cụ thể (nhạc sĩ, tiêu đề, thời lượng, đánh máy, v.v.).
Tham Số
Danh sách ID tài sản hoặc nội dung mà để lấy lại dữ liệu khai thác. Kích cỡ lô tối đa là 30.
Lợi Nhuận
Mảng các bảng từ điển theo cùng một thứ tự như yêu cầu, mỗi bảng từ điển chứa các thông tin khác cho tài sản/nội dung của nó:
AssetId (chuỗi)
Title (chuỗi)
Artist (chuỗi)
Duration (number) trong giây
AudioType ( Enum.AudioSubType )
Lưu ý rằng nếu xảy ra lỗi khi lấy thông tin métadữ cho bất kỳ tài nguyên nào được yêu cầu, ví dụ như ID tài nguyên không tồn tại, bảng từ điển của nó vẫn được bao gồm trong mảng trả về nhưng chỉ chứa trường AssetId để mục đích tham khảo.Ngoài ra, nếu không thể xác định AudioType đối với một tài sản cụ thể (có lẽ vì nó là âm thanh riêng tư), từ điển kết quả sẽ không chứa một AudioType đầu mục.
Mẫu mã
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
Chức năng này trả về chi tiết nội dung của gói được chỉ định.
Nếu ID gói không tồn tại, nó ném HTTP 400 (Bad Request) . Nếu bundleId không thể chuyển đổi thành số nguyên, nó ném Unable to cast string to int64 .
Tham Số
ID của gói được định nghĩa.
Lợi Nhuận
Từ điển với các cặp chìa khóa-giá trị sau đây chứa chi tiết về gói được chỉ định:
Id — ID gói (tương tự như đã truyền bundleId argument
Name — Tên gói
Description — Mô miêu tảgói
BundleType — Chuỗi đại diện cho Enum.BundleType , ví dụ "BodyParts" hoặc "DynamicHead"
Items — Mảng các vật phẩm trong gói, mỗi vật phẩm có chi tiết được đại diện thông qua các chìa khóa sau:
Id — ID mục
Name — Tên mục
Type — Loại vật phẩm như "Asset" .
Mẫu mã
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
Trả về một đối tượng StandardPages chứa tên và PlaceId của các vị trí trong trải nghiệm hiện tại.
Lợi Nhuận
Mẫu mã
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
Cho phép tạo tài sản trong trải nghiệm cho người dùng bằng cách yêu cầu một hộp thoại xuất bản.Khi gọi, nó trình bày một hộp thoại cho người dùng, cho phép họ nhập tên, miêu tảtả và xem trước tài sản.Sau khi gửi, nó lưu tài sản vào kho hàng của người dùng.Chỉ có thể được gọi trên phía máy chủ.
Tham Số
Người dùng gửi lại sự tạo tài sản phẩm.
Tài sản được tạo. Hiện tại không thể chứa các kịch bản hoặc lồng các tài sản không công khai.
Loại tài đánh máy. Hiện tại chỉ có thể là Enum.AssetType.Model .
Lợi Nhuận
Cặp ID Enum.PromptCreateAssetResult và tài sản nếu thành công.
PromptImportAnimationClipFromVideoAsync
Tham Số
Lợi Nhuận
SavePlaceAsync
Lưu trạng thái của địa điểmhiện tại. Chỉ hoạt động cho những nơi được tạo bằng AssetService:CreatePlaceAsync() hoặc có API được bật kích hoạt thông qua cài đặt nơi.
Lợi Nhuận
SearchAudio
Trả về một đối tượng AudioPages chứa kết quả của cuộc tìm kiếm đã cho. Sẽ không trả lại các trường với giá trị trống.
Lưu ý rằng phương pháp này có giới hạn yêu cầu HTTP thấp và có thể gây ra lỗi, vì vậy nó nên luôn được bọc trong pcall() để xử lý lỗi.Các thông báo lỗi có thể bao gồm:
<th>Lý do</th></tr></thead><tbody><tr><td>HTTP 429 (Quá nhiều yêu cầu)</td><td><code>Class.AssetService:SearchAudio()</code> đã được gọi quá nhiều lần.</td></tr><tr><td>Loại bất ngờ cho dữ liệu, dự kiến 阵列 có null</td><td>Các tham số từ khóa đã bị lọc.</td></tr></tbody>
Thông báo lỗi |
---|
Tham Số
Lợi Nhuận
Mẫu mã
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
}
}
--]]