AssetService
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
AssetService เป็นบริการที่ไม่เคยเกิดขึ้นซึ่งจัดการคำถามที่เกี่ยวข้องกับสินทรัพย์สู่ API ของ Roblox
สรุป
วิธีการ
สร้าง EditableImage ใหม่
สร้าง EditableMesh ที่ว่างเปล่า
สร้างวัตถุใหม่ EditableImage ที่เต็มด้วยภาพที่ให้
สร้างวัตถุ EditableMesh ใหม่จาก ID เนื้อหาเมชที่มีอยู่
สร้าง MeshPart ใหม่ด้วย ID เมชที่กำหนดและตารางค่าความเป็นจริงออปชัน
คลอนสถานที่ผ่าน templatePlaceID ที่ให้
- CreatePlaceInPlayerInventoryAsync(player : Instance,placeName : string,templatePlaceID : number,description : string):number
คลอนสถานที่ผ่าน templatePlaceID ผู้เล่น
กลับรายการรหัสสินทรัพย์ที่อยู่ในแพ็กเกจที่กำหนด
แหล่งที่มา
ชุดรวม
กลับมาเป็นวัตถุ StandardPages ที่มีชื่อและ PlaceId ของสถานที่ในประสบการณ์ปัจจุบัน
สามารถสร้างสินทรัพย์ในประสบการณ์สำหรับผู้ใช้โดยการเรียกใช้การแสดงผลแบบพาสเปอร์
บันทึกสถานะของสถานที่ปัจจุบัน
ค้นหาสื่อเสียงที่ตรงกับผลการค้นหาที่หลากหลาย
คุณสมบัติ
วิธีการ
CreateEditableImage
สร้าง EditableImage ใหม่ โดยปกติความละเอียดจะตั้งไว้ที่ 512×512 คุณสามารถระบุขนาดที่แตกต่างกันได้โดยใช้ตารางวิธีการใช้งาน
หากคงคลังหน่วยความจำที่กำหนดเฉพาะตัวอุปกรณ์ถูกนำออกแล้ว การสร้างล้มเหลวและวิธีนี้กลับมา nil
พารามิเตอร์
ตารางตัวเลือกที่มีการควบคุมสำหรับวิธีการ:
- Size – รุ่น Vector2 ที่ระบุความกว้างและความสูงของรูปภาพ
ส่งค่ากลับ
CreateEditableMesh
สร้าง EditableMesh ที่ว่างเปล่า คุณสมบัติของ垂直 สามเหลี่ยมและคุณสมบัติของพวกเขาสามารถเพิ่มได้อย่างไม่มีที่สิ้นสุด หากงบประมาณของหน่วยความจำที่เป็นไปได้สูงสุดถูก
พารามิเตอร์
ส่งค่ากลับ
CreateEditableImageAsync
สร้างวัตถุใหม่ EditableImage ที่เต็มด้วยข้อความข้างต้น รวมถึง ID ของเนื้อหาที่เป็นสมบัติสมุน เช่น rbxthumb:// ได้รับการส
ดูส่วน เปิดใช้งาน EditableImage สำหรับประสบการณ์ที่เผยแพร่ และ การอนุญาต ของ EditableImage สำหรับข้อควรพิจารณาพิเศษเมื่อใช้ API นี้
พารามิเตอร์
ส่งค่ากลับ
รูปใหม่ EditableImage ที่มีภาพที่ให้ไว้
CreateEditableMeshAsync
กลับมาที่วัตถุใหม่ EditableMesh ที่สร้างขึ้นจาก ID เนื้อผ้าเมชที่มีอยู่ โดยปกติวัตถุ EditableMesh ที่สร้างจากวิธีนี้จะมีขนาดที่แก้ไขได้เท
หากคงคลังหน่วยความจำที่แก้ไขได้เฉพาะอุปกรณ์หมดสิ้นคุณสมบัติการสร้างจะล้มเหลวและวิธีนี้จะกลับมา nil
ดูส่วน เปิดใช้งาน EditableMesh สำหรับประสบการณ์ที่เผยแพร่ และ การอนุญาต ของ EditableMesh สำหรับข้อควรพิจารณาพิเศษเมื่อใช้ API นี้
พารามิเตอร์
ตารางตัวเลือกที่มีการควบคุมสำหรับวิธีการ:
- FixedSize – ค่าเริ่มต้นคือ bool และค่าที่กลับมาคือ true จะไม่สามารถให้คุณเพิ่มหรือลบเหลี่ยมผืนผ้าได้ ตั้งค่าเป็
ส่งค่ากลับ
ตัวอย่างใหม่ EditableMesh
CreateMeshPartAsync
วิธีนี้สร้าง MeshPart ด้วย CollisionFidelity และ Class.Mesh
พารามิเตอร์
ตารางตัวเลือกที่มีหนึ่งหรือมากกว่าควบคุมสำหรับวิธีการ:
- CollisionFidelity – มีค่าของ CollisionFidelity ในส่วนผลลัพธ์ ค่าเริ่มต้นคือ Enum.CollisionFidelity.Default หากตัวเลือกหายไปหรือตาราง 0> Options
- RenderFidelity – มูลค่าของ RenderFidelity ในส่วนผลลัพธ์ ค่าเริ่มต้นคือ Enum.RenderFidelity.Automatic หากตัวเลือกหายไปหรือตาราง 0> Options0> ไ
- FluidFidelity – มูลค่าของ FluidFidelity ในส่วนที่เกิดขึ้น ปกติจะเป็น Enum.FluidFidelity.Automatic หากตัวเลือกหายไปหรือตาราง 0>
ส่งค่ากลับ
CreatePlaceAsync
คลอนสถานที่ผ่าน templatePlaceID และส่งคืน PlaceId ของสถานที่ใหม่ซึ่งคุณสามารถใช้ได้ด้วย TeleportService สถานที่คลอนจะปรากฏในชื่อและคำอธิบายข
หมายเหตุว่าสถานที่แบบจำลองจะต้องมีการเลียนแบบรูปแบบผ่านการตั้งค่าสถานที่ คุณไม่สามารถใช้วิธีนี้เพื่อโคลนสถานที่ที่คุณไม่ได้เป็นเจ้าของ
ไม่แนะนำให้ใช้ API นี้บ่อยไปยังผู้ใช้ที่สร้างสถานที่ โดยเฉพาะอย่างยิ่งหากสถานที่ที่สร้างมีสคริปต์ เนื่องจากการปรับปรุงรหัสในปริมาณขนาดใหญ่ของสถานที่จะเป็นไปได้ยา
พารามิเตอร์
ชื่อสถานที่ใหม่
คำอธิบายสถานที่ใหม่
ส่งค่ากลับ
CreatePlaceInPlayerInventoryAsync
พารามิเตอร์
ส่งค่ากลับ
GetAssetIdsForPackage
กลับรายการรหัสสินทรัพย์ที่อยู่ในแพ็กเกจที่กำหนด
พารามิเตอร์
ส่งค่ากลับ
รหัสสินทรัพย์ที่อยู่ในแพ็กเกจที่กำหนด
GetAudioMetadataAsync
ให้ข้อมูลที่เกี่ยวข้องเกี่ยวกับทรัพยากรเสียงที่เฉพาะเจาะจง (ศิลปิน ชื่อเรื่อง พิมพ์ประเภท ฯลฯ)
พารามิเตอร์
รายการรหัสสินทรัพย์หรือเนื้อหาสำหรับที่จะดึงข้อมูลเมทาดาต้า ขนาดสูงสุดของการจัดการคือ 30
ส่งค่ากลับ
รายการโต๊ะพจนานุกรมในลำดับเดียวกับคำขอ โดยแต่ละโต๊ะพจนานุกรมมีข้อมูลต่อไปนี้สำหรับสินทรัพย์/เนื้อหาของมัน:
AssetId (สตริง )
Title (สตริง )
Artist (สตริง)
Duration ( จํานวนเงิน ) ในวินาที
AudioType ( Enum.AudioSubType )
หมายเหตุว่าหากเกิดข้อผิดพลาดในการดึงข้อมูลเมทาดันส์สำหรับทรัพยากรใด ๆ ที่ร้องขอ (เช่น ID ทรัพยากรไม่ถูกต้อง แท็บข้อมูลใ
ตัวอย่างโค้ด
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
ชุดรวม
หากรหัสรวมไม่มีอยู่จะโยน HTTP 400 (Bad Request) หาก bundleId จะโยน Unable to cast string to int64 นอกจากนี้ยังมีการโยน 1> HTTP 400 (Bad Request)1> หาก 4> 束ละครไม่สามา
พารามิเตอร์
ชุดรวม
ส่งค่ากลับ
ชุดรวม:
Id — รหัสรวม (เหมือนกับการผ่าน bundleId อาร์กิวเมนต์)
Name — ชื่อแพ็คเกจ
Description — คำอธิบายแพ็คเกจ
BundleType — สตริงที่แทนที่ Enum.BundleType เช่น "BodyParts" หรือ 0>ไดนามิกหัว0>
Items — ชุดรวม— แต่ละรายการมีรายละเอียดที่แสดงโดยสัญลักษณ์ต่อไปนี้:
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.AssetType.Model เท่านั้น
ส่งค่ากลับ
เลขที่รหัสสินทรัพย์และรหัสรับแล้วถ้าสำเร็จ
PromptImportAnimationClipFromVideoAsync
พารามิเตอร์
ส่งค่ากลับ
SavePlaceAsync
บันทึกสถานะของสถานที่ปัจจุบัน ทำงานได้เฉพาะสถานที่ที่สร้างขึ้นด้วย AssetService:CreatePlaceAsync() หรือสถานที่ที่มี API เปิดใช้งานผ่านการตั้งค่าสถานที่
ส่งค่ากลับ
SearchAudio
กลับมาเป็นวัตถุ AudioPages ที่มีผลการค้นหาที่ให้ไว้ จะไม่กลับมาเป็นฟิลด์ที่มีค่าว่าง
โปรดทราบว่าวิธีนี้มีขีดจำกัดการร้องขอ HTTP ต่ำและสามารถส่งผลให้เกิดข้อผิดพลาดดังนั้นจึงควรมีการรวมอยู่ใน pcall() สำหรับการจัดการข้อผิดพลาด
<tbody><tr><td>HTTP 429 (มีคำขอมากเกินไป)</td><td><code>Class.AssetService:SearchAudio()</code> ได้รับการโทรไปมากเกินไป</td></tr><tr><td>ไม่ได้รองรับประเภทสำหรับข้อมูล, คาดหวัง mat阵ไม่ได้รับค่า</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
}
}
--]]