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。 它对于本地化插件有用。
以下是基于此函数返回的值的简单示例。
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
获取类级图标 提供一个词典,可以显示一个类的 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(),同样的功能,但用于加载列 of 文件而不是单个文件
参数
用户可以选择的文件类型列表。文件类型以空格为分隔符。例如,“jpg”、“png” 将允许只有 JPG 或 PNG 文件可以被选择。如果没有提供过滤器,过滤器为空,用户可以选择任何文件输入。
返回
PromptImportFiles
此功能提示当前 Studio 用户选择一个或多个文件,然后将为 Files 加载。
如果文件类型过滤器是空列表,将抛出一个错误。
还请参阅:
- StudioService:PromptImportFile() , 相同的功能,但是为单个文件而不是列表的文件加载
参数
用户可以选择的文件类型列表。文件类型以空格为分隔符。例如,“jpg”、“png” 将允许 JPG 和 PNG 文件的选择。如果没有提供过滤器,过滤器为空,用户可以选择任何文件输入。
返回
导入的 Files 。如果没有选择文件,返回一个空列表。如果用户选择了太大的文件(文件大小超过 100 兆字节),返回 nil 。