插件工具栏按钮是由 PluginToolbar:CreateButton() 函数创建的对象。它允许用户通过 Click 事件启动 Roblox Studio 中的单次、一次性行动。
按下时,Click事件发生。按钮也会保持在按下状态,可以通过 SetActive 手动设置。在插件激活后(Plugin:Activate() ),所有其他PluginToolbars按钮将被关闭。如果工具栏中的所有按钮都关闭,工具栏的插件将被禁用(Plugin:Deactivate())。
当游戏窗口不可见时,按钮将被禁用,如果其 Enabled 属性为空,就像它们的属性为空一样。禁用按钮会被淡化,无法回应用户单击。通过将 ClickableWhenViewportHidden 设置为真值,您可以允许插件按钮仍然可以单击(例如在脚本编辑期间)。
概要
属性
决定按钮在游戏窗口隐藏时是否可以单击,例如在不同的工作室选项卡中编辑脚本时。
决定按钮在一通用情况下是否可点击。
决定哪个图标应该代表按钮。
属性
ClickableWhenViewportHidden
点击时隐藏视窗时 确定是否可以单击插件工具栏按钮,例如当在另一选项卡中编辑 Script 时,游戏视窗隐藏。
通常,启用此属性可以确保如果插件按钮的 Click 事件触发的行动在游戏世界 (工作区) 中没有发生,从而避免资源浪费。例如,打开 widget 的按钮应该具有此属性为真,因为即使游戏视图不可见,用户也可以看到 widget 。
Enabled
启用 决定是否在一通用情况下按钮可点击。当此属性为 false 时,按钮将被灰色并且无法单击,阻止用户发射 Click 事件。默认情况下,按钮已启用。
重新启用此属性时,插件按钮的状态不会从用户离开按钮所在状态中记住。相反,它将默认为由 SetActive() 设置的最后状态或不活跃状态,如果 SetActive() 从未使用。
插件应在按钮操作不相关时禁用按钮。例如,将随机颜色分配给选择的插件按钮不应在选择中没有零件时启用。查看代码示例以获取更多信息。
还见:
- ClickableWhenViewportHidden , 决定是否当游戏视图隐藏时按钮可点击(而不仅仅是在一般情况下)
代码示例
这个代码示例是为工作室 Plugin 。插件创建一个 PluginToolbarButton ,使每个选择的部分的 BrickColor() 随机使用 BrickColor.random() 。此外,按钮只有在至少选择一部分时才启用。它通过检测 Selection 使用 Selection.SelectionChanged 中的变化来实现这一目标。
assert(plugin, "This script must be run as a plugin")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Parts")
local pluginToolbarButton = toolbar:CreateButton(
"Randomize Colors",
"Click this button to assign random colors to selected parts",
"rbxassetid://5325741572" -- 彩虹
)
local function onClick()
local selection = Selection:Get()
for _, object in pairs(selection) do
if object:IsA("BasePart") then
object.BrickColor = BrickColor.random()
end
end
end
pluginToolbarButton.Click:Connect(onClick)
local function doesSelectionContainAPart()
local selection = Selection:Get()
for _, object in pairs(selection) do
if object:IsA("BasePart") then
return true
end
end
return false
end
local function onSelectionChanged()
pluginToolbarButton.Enabled = doesSelectionContainAPart()
end
Selection.SelectionChanged:Connect(onSelectionChanged)
onSelectionChanged()
方法
活动
Click
单击 发生当用户按下并释放插件工具按钮时。
单击插件工具栏按钮会导致按钮状态切换。调用 SetActive 手动设置按钮状态。
代码示例
This code sample demonstrates creating a PluginToolbar and a PluginToolbarButton on it, then connecting a function onClick to the PluginToolbarButton.Click event. When pressed, the button will print "Hello, world" to the output.
assert(plugin, "This script must be run as a plugin")
local toolbar = plugin:CreateToolbar("Hello World Plugin Toolbar")
local pluginToolbarButton =
toolbar:CreateButton("Print Hello World", "Click this button to print Hello World!", "rbxassetid://133293265")
local function onClick()
print("Hello, world")
end
pluginToolbarButton.Click:Connect(onClick)