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
Secrets
ShowConstraintDetails
ShowWeldDetails
StudioLocaleId
StudioLocalId 屬性包含 Studio 目前使用的地區,例如 en_US。當 localize 插件時有助於。
下面是基於此功能返回的值的極其簡單的本地化範例。
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
UseLocalSpace
使用本地空間/旋轉工具會否操作對象的 Class.BasePart.CFrame|CFrame ,使用對象或全球空間的本地空間。 預設情況下,此設定會與 Ctrl 0>L0> 或 3>⌘ 3> 切換。
方法
GetClassIcon
獲得ClassIcon 提供一個典型,允許顯示一個類' Explorer 窗口圖示,例如使用 "Part" 呼叫此函數會返回屬性值,顯示從 Explorer 窗口顯示零件圖示。
下表是 "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 使用者已登入,則返回 Studio 使用者的使用者名稱,否則返回 0。
返回
範例程式碼
-- 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 檔案。如果沒有提供過濾器,濾器為空,允許用戶選擇任何檔案輸入。
返回
PromptImportFiles
此功能提示當前 Studio 使用者選擇一個或多個檔案,然後會以 Files 的方式載入。
如果 fileTypeFilter 是空白清單,則會發生錯誤。
也看:
- StudioService:PromptImportFile() , 相同的功能,但僅用於載入單個檔案而不是一個列的檔案
參數
一個用戶可以選擇的檔案類型清單。檔案類型以點數格式而不是標號格式來格式化。例如,「jpg」、「png」將只允許 JPG 和 PNG 檔案來選擇。如果沒有提供過濾器,過濾器將為空,並允許用戶選擇任何檔案輸入。
返回
导入的 Files 。如果沒有選擇任何文件,則會返回空白清單。如果使用者選擇了太大的文件(FileSize 大於 100 個兆),則會返回零。