AssetService 는 Roblox 웹 API에 대한 자산 관련 쿼리를 처리하는 비 복제 서비스입니다.
요약
메서드
새로운 EditableImage 생성.
새로운, 비어있는 EditableMesh 을 생성합니다.
지정된 이미지로 채워진 새로운 EditableImage 인스턴스를 생성합니다.
기존 메쉬 콘텐츠 ID에서 생성된 새로운 EditableMesh 인스턴스를 반환합니다.
지정된 메쉬 ID 및 옵션 메쉬 값 테이블을 포함한 새로운 MeshPart를 생성합니다.
지정된 templatePlaceID 를 통해 장소를 클론합니다.
- CreatePlaceInPlayerInventoryAsync(player : Instance,placeName : string,templatePlaceID : number,description : string):number
지정된 templatePlaceID를 통해 장소를 클론하고 해당 플레이어의 인벤토리에 넣습니다.
지정된 패키지에 포함된 자산 ID 배열을 반환합니다.
특정 오디오 소스에 대한 유용한 메타데이터를 제공합니다.
지정된 번들의 내용에 대한 세부 정보를 반환합니다.
현재 경험에 있는 장소의 이름과 StandardPages 장소의 위치를 포함하는 PlaceId 개체를 반환합니다.
사용자가 게시 대화 상자를 통해 경험 내 자산을 만들 수 있도록 허용합니다.
현재 플레이스상태를 저장합니다.
다양한 검색 조건에 일치하는 오디오 자산을 찾습니다.
속성
메서드
CreateEditableImage
새로운 EditableImage 을 생성합니다. 기본적으로 해상도는 512×512로 설정되지만 메서드의 옵션 테이블을 사용하여 다른 크기를 지정할 수 있습니다.
장치 특정 편집 가능 메모리 예산이 소진되면 생성이 실패하고 이 메서드는 nil을 반환합니다.
매개 변수
메서드에 대한 컨트롤이 있는 옵션 테이블:
- Size – 이미지의 너비 및 높이를 지정하는 Vector2입니다.
반환
CreateEditableMesh
새로운, 비어 있는 EditableMesh 를 생성합니다. 측정, 삼각형 및 그 특성은 동적으로 추가될 수 있습니다. 장치 특정 편집 가능 메모리 예산이 소진되면 생성이 실패하고 이 메서드는 nil 을 반환합니다.
매개 변수
반환
CreateEditableImageAsync
지정된 텍스처로 새로운 EditableImage 인스턴스를 생성합니다. 기본 텍스처 ID(예: rbxthumb://)를 사용하는 비 자산 텍스처 ID(예: nil 를 포함하여)는 지원되지 않습니다. 경험
매개 변수
반환
제공된 이미지가 포함된 새로운 EditableImage 입니다.
CreateEditableMeshAsync
기존 메쉬 콘텐츠 ID에서 생성된 새로운 EditableMesh 인스턴스를 반환합니다. 기본적으로 이 메쉬 데이터 생성 메서드에서 생성된 EditableMesh 는 메쉬 데이터만 수정할 수 있으므로 메쉬 데이터가 추가
장치 특정 편집 가능 메모리 예산이 소진되면 생성이 실패하고 이 메서드는 nil 을 반환합니다.
매개 변수
메서드에 대한 컨트롤이 있는 옵션 테이블:
- FixedSize – 은 bool 입니다. 기본값은 true 이며, 반환된 0> Class.EditableMesh0> 는 복셀을 추가하거나 제거할 수 없습니다. 메쉬 토폴로지를 변경하는 대신 값을 수정하는 것입니다
반환
새로운 EditableMesh 인스턴스.
CreateMeshPartAsync
이 메서드는 MeshPart 를 지정한 CollisionFidelity 와 Class.MeshPart.RenderFidelity
매개 변수
메서드에 대한 하나 이상의 컨트롤이 있는 옵션 테이블:
- CollisionFidelity – 결과 부품에 있는 CollisionFidelity 값의 기본값. 옵션이 없거나 Enum.CollisionFidelity.Default 테이블이 없는 경우 0> ень0> 기준으로 되돌립니다.
- RenderFidelity – 결과 부품에 있는 RenderFidelity 값의 기본값. 옵션이 없거나 Enum.RenderFidelity.Automatic 테이블이 없는 경우 기본값은 0> Enum.RenderFidelity.Automatic0>입니다.
- FluidFidelity – 결과 부품에 있는 FluidFidelity 의 값. 기본값은 Enum.FluidFidelity.Automatic 이며 옵션이 없거나 0> Options0> 테이블이 없는 경우는 FluidFidelity3> 입니다
반환
CreatePlaceAsync
지정된 templatePlaceID 을 통해 장소를 클론하고 새로운 장소의 PlaceId를 반환합니다. 이 새로운 플레이스TeleportService 와 함께 사용할 수 있습니다. 클론 장소는 플레이스생성자의 인벤토리에 표시되며 지정된 이름과 설명을
템플릿 장소에서 템플릿 복사를 사용하도록 장소 설정에서 템플릿 복사를 활성화해야 합니다. 이 메서드를 사용하여 보유않은 장소를 클론할 수 없습니다.
이 API를 자주 사용하지 마십시오, 특히 만든 장소에 스크립트가 포함되어 있으면, 코드를 대량의 장소에 신속하게 업데이트하는 것이 불가능해지기 때문에. 사용자 생성 세계의 경우 사용자 크리에이션을 직렬화하고 DataStores 에 저장하는 것이 좋습니다.
매개 변수
새로운 플레이스이름.
새로운 플레이스설명.
반환
CreatePlaceInPlayerInventoryAsync
매개 변수
반환
GetAssetIdsForPackage
지정된 패키지에 포함된 자산 ID 배열을 반환합니다.
매개 변수
반환
지정된 패키지에 포함된 자산 ID.
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
현재 장소의 상태를 저장합니다. 장소를 생성한 위치에 대해서만 작동하며, 장소 설정에서 플레이스 비쥬얼 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
}
}
--]]