StudioService 는 Roblox Studio의 구성에 액세스하고, 사용자의 파일 시스템에서 파일 가져오기를 허용하며, 기타 다양한 정보를 제공합니다.일관된 사용자 환경을 제공하기 위해 Plugins에 사용되도록 의도되었습니다.
- 인스턴스 클래스의 아이콘을 표시하는 플러그인은 GetClassIcon를 사용할 수 있습니다.
- 현재 편집 중인 스크립트를 신경 쓰는 플러그인(있는 경우)은 ActiveScript에서 이것을 읽을 수 있습니다.
요약
속성
현재 편집 중인 LuaSourceContainer를 반영합니다 (있는 경우).
Studio의 드래그 및 이동 도구가 각 티켓에서 개체를 이동하는 스터드 거리를 결정합니다.
Studio의 회전 도구가 각 티켓에서 선택한 개체를 회전하는 정도를 결정합니다.
Studio에서 현재 사용 중인 로캘, 예를 들어 en_US .
Studio 도구가 개체의 로컬 공간이나 전역 공간을 사용할지 여부를 결정합니다.
메서드
속성
ActiveScript
ActiveScript 는 현재 사용자가 편집하고 있는 LuaSourceContainer를 참조합니다.사용자가 스크립트를 편집하지 않는 경우, 이것은 nil가 됩니다.아래는 스크립트가 얼마나 오랫동안 활성 상태였는지를 측정하기 위해 이 속성을 사용하는 방법을 보여주는 예입니다.
local StudioService = game:GetService("StudioService")
local startTime = os.time()
local activeScript
local function onActiveScriptChanged()
local newActiveScript = StudioService.ActiveScript
if activeScript and newActiveScript ~= activeScript then
local deltaTime = os.time() - startTime
print(("You edited %s for %d:%2.d"):format(activeScript.Name, deltaTime // 60, deltaTime % 60))
end
startTime = os.time()
activeScript = newActiveScript
end
StudioService:GetPropertyChangedSignal("ActiveScript"):Connect(onActiveScriptChanged)
DraggerSolveConstraints
GridSize
그리드 크기 는 Studio의 드래그 및 이동 도구가 각 티켓에서 개체를 이동하는 스터드 거리를 결정합니다.이는 사용자의 도구 모음의 모델 탭에 설정됩니다.
RotateIncrement
회전 증가량 은 Studio의 회전 도구가 각 티켓마다 선택된 개체를 회전하는 각도(도)를 결정합니다.이는 사용자의 도구 모음의 모델 탭에 설정됩니다.
Secrets
ShowConstraintDetails
ShowWeldDetails
StudioLocaleId
StudioLocaleId 속성에는 Studio에서 현재 사용 중인 로캘, 예를 들어 가 포함되어 있습니다. 플러그인을 지역화할 때 유용합니다.
다음은 이 함수에서 반환된 값을 기반으로 한 간단한 지역화 예제입니다.
local locale = game:GetService("StudioService").StudioLocaleIdif locale == "en_US" thenprint("Howdy, ya'll")elseif locale == "en_GB" thenprint("'Ello, gov'na")elseif locale:sub(1, 2) == "en" thenprint("Hello")elseif locale == "fr_FR" thenprint("Bonjour")end
메서드
GetClassIcon
GetClassIcon 은 클래스의 탐색기 창 아이콘 표시를 허용하는 사전을 제공합니다(예:이 함수를 "파트"로 호출하면 탐색기 창에서 부품 아이콘을 표시하는 속성 값이 반환됩니다.
다음은 "Part"로 이 함수가 호출될 때 반환된 값의 리터럴 테이블 표현입니다.
{Image = "rbxasset://textures/ClassImages.png",ImageRectOffset = Vector2.new(16, 0),ImageRectSize = Vector2.new(16, 16)}
아래의 유틸리티 함수는 클래스 아이콘을 표시할 때 유용할 수 있습니다:
local StudioService = game:GetService("StudioService")
local imageLabel = script.Parent
local function displayClassIcon(image, className)
for k, v in StudioService:GetClassIcon(className) do
image[k] = v -- 속성 설정
end
end
displayClassIcon(imageLabel, "Part")
매개 변수
반환
GetUserId
로그인한 경우 Studio 사용자의 사용자 ID를 반환하고, 그렇지 않으면 0을 반환합니다.
반환
코드 샘플
The example prints the currently logged in user's ID.
-- Can only be used in a plugin
local StudioService = game:GetService("StudioService")
local Players = game:GetService("Players")
local loggedInUserId = StudioService:GetUserId()
local loggedInUserName = Players:GetNameFromUserIdAsync(loggedInUserId)
print("Hello,", loggedInUserName)
GizmoRaycast
매개 변수
반환
PromptImportFile
이 함수는 현재 Studio 사용자에게 하나의 파일을 선택하도록 요청하며, 이 파일은 나중에 File 로드됩니다.
참조하세요:
- StudioService:PromptImportFiles() , 단일 파일 대신 파일 목록을 로드하는 동일한 함수
매개 변수
사용자가 선택할 수 있는 파일 유형 목록.파일 유형은 마침표 없이 형식이 지정됩니다.예를 들어, "jpg", "png"는 JPG 또는 PNG 파일만 선택할 수 있도록 허용합니다.필터가 제공되지 않으면 필터는 nil이고 사용자가 모든 파일 입력선택할 수 있습니다.
반환
PromptImportFiles
이 함수는 현재 Studio 사용자에게 하나 이상의 파일을 선택하도록 요청하며, 이 파일은 Files로 로드됩니다.
파일 유형 필터가 빈 목록이면 오류를 던집니다.
참조하세요:
- StudioService:PromptImportFile() , 목록의 파일 대신 단일 파일을 로드하는 동일한 함수
매개 변수
사용자가 선택할 수 있는 파일 유형 목록.파일 유형은 마침표 없이 형식이 지정됩니다.예를 들어, "jpg", "png"는 JPG와 PNG 파일만 선택할 수 있도록 허용합니다.필터가 제공되지 않으면 필터는 nil이고 사용자가 모든 파일 입력선택할 수 있습니다.
반환
가져온 Files .파일이 선택되지 않으면 빈 목록을 반환합니다.사용자가 파일 하나 이상을 선택하여 크기가 너무 커(파일 크기가 100MB 이상)하면 nil 반환합니다(FileSize가 100MB 이상).