Plugin

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Não criável

Plugin é o principal objeto responsável por criar widgets básicos do Studio, barras de ferramentas de plugin, botões de plugin e muito mais.É um aditivo personalizado ao Studio que adiciona novo comportamento e recursos que não são normalmente incluídos.O objeto Plugin pode ser acessado através da referência global plugin em um Script que é executado como um plugin.

Amostras de código

The plugin global reference is not passed to ModuleScripts within the plugin. In order to use it in a ModuleScript, you must explicitly pass it as seen in the example below.

Script - Pass the Plugin Global to a ModuleScript

assert(plugin, "This script must be run as a plugin!")
-- Code beyond this point will execute only if the script is run as a plugin
-- Load the module and pass the plugin reference
local pluginModule = require(script.Parent.PluginModule)
pluginModule:Initialize(plugin)
-- Verify if the plugin reference was initialized
pluginModule:CheckForPluginGlobal()
ModuleScript - Receive and Store the Plugin Global

local pluginModule = {}
local plugin -- Local plugin reference
-- Initialize the plugin reference if not already set
function pluginModule:Initialize(pluginReference: Plugin)
if plugin ~= pluginReference then
plugin = pluginReference
else
error("Plugin is already initialized")
end
end
-- Check if the plugin reference is set and print out appropriate info
function pluginModule:CheckForPluginGlobal()
if plugin ~= nil then
print("Plugin reference is set!")
else
warn("Plugin reference is missing!")
end
end
return pluginModule

Resumo

Propriedades

Métodos

Eventos

Propriedades

CollisionEnabled

Somente leitura
Não replicado
Ler Parallel

Retorna se o usuário habilitou Collisions no Studio na aba Modelo.

DisableUIDragDetectorDrags

Segurança do script Roblox
Ler Parallel

GridSize

Somente leitura
Não replicado
Ler Parallel

Retorna o tamanho de sobreposição da grade que o usuário definiu no Studio sob as abas Modelo ou Avatar da barra de ferramentas.Observe que esta propriedade pode ter erros de arredondamento ligeiros; por exemplo, pode ser 0.0099999997764826 para uma configuração de usuário de 1 ou 0.4000000059604645 para uma configuração de usuário de 0.4.

IsDebuggable

Segurança do script Roblox
Ler Parallel

Métodos

Activate

()
Segurança do plugin

Essa função define o estado do plugin de chamada para ativado. Ativar o plugin permite o controle do mouse através do método Plugin:GetMouse().

A qualquer momento, existem 0 ou 1 Plugins Ativados.Ativar um plugin desativará todos os outros plugins (eles receberão um evento Plugin.Deactivation).

Veja também:

  • Plugin:IsActivatedWithExclusiveMouse() , retorna verdadeiro se este plugin estiver atualmente ativo com um mouse exclusivo, depois de ter sido ativado através desta função
  • Plugin.Unloading , dispara imediatamente antes que o plugin seja descarregado ou recarregado via desinstalação, desativação ou atualização

Parâmetros

exclusiveMouse: boolean

Um booleano que especifica se deve ativar o plugin com o mouse exclusivo. Se verdadeiro, um PluginMouse pode ser recuperado via Plugin:GetMouse() .

Valor Padrão: ""

Devolução

()

CreatePluginAction

Segurança do plugin

Essa função cria um PluginAction que é um objeto que representa uma ação genérica executável no Roblox Studio, sem nenhum associado diretamente Toolbar ou Enum.Button.No Roblox Studio, eles podem ser atribuídos um atalho de teclado sob File → Advanced → Customize Shortcuts… e também podem ser adicionados à Barra de Acesso Rápido.

Quando uma ação é acionada, o evento PluginAction.Triggered é sinalizado.

Para que as Ações de Plugin funcionem como esperado, elas devem ser criadas usando essa função.

Veja também:

Parâmetros

actionId: string

Deve ser uma string única que identifica esta Ação de Plugin de outros.

Valor Padrão: ""
text: string

O nome exibido da ação.

Valor Padrão: ""
statusTip: string

A descrição exibida da ação.

Valor Padrão: ""
iconName: string

O nome do ícone usado para exibir o plugin.

Valor Padrão: ""
allowBinding: boolean

Se o PluginAction será oculto da visão de atalhos do Studio. Útil para ações contextuais. Padrão para verdadeiro.

Valor Padrão: true

Devolução

Amostras de código

This code sample visualizes how to create a PluginAction. These must be created using the Plugin:CreatePluginAction() method in order to work.

In order to work as expected, the code block must but pasted into the Command Bar, but only once. Consecutive attempts at executing the code in the Command Bar will result in an error because a plugin cannot create more than one PluginMenu with the same ID.

When the created action is bound and Triggered, it outputs Hello world!.

Creating a PluginAction

local pluginAction = plugin:CreatePluginAction(
"HelloWorldAction",
"Hello World",
"Prints a 'Hello world!'",
"rbxasset://textures/sparkle.png",
true
)
pluginAction.Name = "Test Action"
local function actionTriggered()
print("Hello world!")
end
pluginAction.Triggered:Connect(actionTriggered)

CreatePluginMenu

Segurança do plugin

Essa função cria um novo PluginMenu, que é um menu de contexto que pode ser mostrado no Studio que exibe uma lista de PluginActions e suporta submenus.

Para que os PluginMenus funcionem como esperado, eles devem ser criados usando essa função.

Veja também:

Parâmetros

id: string

ID exclusivo para o menu.

Valor Padrão: ""
title: string

O texto a ser exibido quando usado como submenu.

Valor Padrão: ""
icon: string

O ícone a ser exibido quando usado como submenu.

Valor Padrão: ""

Devolução

Amostras de código

This code sample visualizes how PluginMenus and PluginActions behave when created for a Plugin. Outside of this example, you should not parent the plugin or its functional components to the experience's workspace.

In order to work as expected, the code block must but pasted into the Command Bar, but only once. Consecutive attempts at executing the code in the Command Bar will result in an error because a plugin cannot create more than one PluginMenu with the same ID.

After executing the code, changing the created BoolValue in the experience's workspace opens the plugin's menus. Selecting an action from the menus the function connected to the trigger signal.

Creating a PluginMenu and PluginMenuAction

-- This code can be pasted into the command bar, but only once
local pluginMenu = plugin:CreatePluginMenu(math.random(), "Test Menu")
pluginMenu.Name = "Test Menu"
pluginMenu:AddNewAction("ActionA", "A", "rbxasset://textures/loading/robloxTiltRed.png")
pluginMenu:AddNewAction("ActionB", "B", "rbxasset://textures/loading/robloxTilt.png")
local subMenu = plugin:CreatePluginMenu(math.random(), "C", "rbxasset://textures/explosion.png")
subMenu.Name = "Sub Menu"
subMenu:AddNewAction("ActionD", "D", "rbxasset://textures/whiteCircle.png")
subMenu:AddNewAction("ActionE", "E", "rbxasset://textures/icon_ROBUX.png")
pluginMenu:AddMenu(subMenu)
pluginMenu:AddSeparator()
pluginMenu:AddNewAction("ActionF", "F", "rbxasset://textures/sparkle.png")
local toggle = Instance.new("BoolValue")
toggle.Name = "TogglePluginMenu"
toggle.Parent = workspace
local function onToggled()
if toggle.Value then
toggle.Value = false
local selectedAction = pluginMenu:ShowAsync()
if selectedAction then
print("Selected Action:", selectedAction.Text, "with ActionId:", selectedAction.ActionId)
else
print("User did not select an action!")
end
end
end
toggle.Changed:Connect(onToggled)

CreateToolbar

Segurança do plugin

A função Criar Barra de Ferramentas cria um novo PluginToolbar com o nome dado. A barra de ferramentas pode então ser usada para criar botões de plugin.

Parâmetros

name: string

O texto visível na barra de ferramentas, rotulando o grupo de botões contidos dentro dela.

Valor Padrão: ""

Devolução

Amostras de código

This code creates a toolbar with the name "ExampleToolbar".

Plugin:CreateToolbar

plugin:CreateToolbar("ExampleToolbar")

Deactivate

()
Segurança do plugin

Desativa o plugin. Isso desengajará o associado PluginMouse se tiver sido ativado

Veja também:

  • Plugin:Activate() , define o estado do plugin de chamada para ativado
  • Plugin.Deactivation , dispara quando o plugin é desativado
  • Plugin.Unloading , dispara imediatamente antes que o plugin seja descarregado ou recarregado via desinstalação, desativação ou atualização

Devolução

()
Segurança do plugin

Retorna o Enum.JointCreationMode que o usuário definiu no Studio na aba Modelo.


Devolução

GetMouse

Segurança do plugin

Obter Mouse retorna um PluginMouse que pode ser usado enquanto o plugin está ativo através de Plugin:Activate() .


Devolução

Amostras de código

This code would print Button 1 pressed from PluginMouse each time the mouse's left button was clicked.

Plugin:GetMouse

local mouse = plugin:GetMouse()
local function button1Down()
print("Button 1 pressed from PluginMouse")
end
mouse.Button1Down:Connect(button1Down)

GetSelectedRibbonTool

Segurança do plugin

GetSelectedRibbonTool retorna o atualmente selecionado Enum.RibbonTool .Retorna um Enum que corresponde a uma ferramenta específica.Isso retornará se a ferramenta for selecionada manualmente ou programaticamente via Plugin:SelectRibbonTool() .


Devolução

Amostras de código

This code must be run from a plugin. This code selects the move tool, checks which tool is selected, then prints out to the console which tool is selected. SelectRibbonTool will not return the value until the next frame.

Plugin:GetSelectedRibbonTool

plugin:SelectRibbonTool(Enum.RibbonTool.Move, UDim2.new())
task.wait() -- wait for next frame
local selectedRibbonTool = plugin:GetSelectedRibbonTool()
print("The selected RibbonTool is", selectedRibbonTool)

GetSetting

Variant
Segurança do plugin

Recupera um valor previamente armazenado com a chave dada, ou nil se a chave dada não existir.

Como múltiplas instâncias do mesmo plugin podem executar simultaneamente (por exemplo, se várias janelas do Studio estiverem abertas), você não deve depender desse valor permanecer o mesmo ao longo do tempo.As outras instâncias de plugin podem atualizar a configuração a qualquer momento.

Essa chamada pode falhar silenciosamente e retornar nil se várias instâncias do mesmo plugin estiverem lendo e escrevendo dados ativamente.Se o seu plugin espera escrever frequentemente nas configurações, você deve verificar duas vezes o valor retornado desta chamada após um breve período para distinguir entre uma configuração temporariamente indisponível e uma configuração que não existe.

Parâmetros

key: string
Valor Padrão: ""

Devolução

Variant

Amostras de código

The below example would print the value saved to the key FirstTime. If the key doesn't exist, it would print nil.

Plugin:GetSetting

local RAN_BEFORE_KEY = "RanBefore"
local didRunBefore = plugin:GetSetting(RAN_BEFORE_KEY)
if didRunBefore then
print("Welcome back!")
else
plugin:SetSetting(RAN_BEFORE_KEY, true)
print("Welcome! Thanks for installing this plugin!")
end

Intersect

Segurança do plugin

Parâmetros

objects: Instances
Valor Padrão: ""

Devolução

IsActivated

Segurança do plugin

Essa função retorna verdadeiro se esse plugin estiver ativo no momento, depois de ter sido ativado através da função Plugin:Activate().


Devolução

Um booleano que indica se o plugin está ativo no momento.

IsActivatedWithExclusiveMouse

Segurança do plugin

Essa função retorna verdadeiro se esse plugin estiver ativo no momento com um mouse exclusivo, depois de ter sido ativado através da função Plugin:Activate().Se isso retornar verdadeiro, um PluginMouse pode ser recuperado via Plugin:GetMouse() .

Veja também:

  • Plugin.Deactivation , dispara quando o plugin é desativado
  • Plugin.Unloading , dispara imediatamente antes que o plugin seja descarregado ou recarregado via desinstalação, desativação ou atualização

Devolução

Se este plugin está atualmente ativo com um mouse exclusivo.

Negate

Instances
Segurança do plugin

Nega as peças dadas e retorna as NegateOperations resultantes.

Parâmetros

objects: Instances
Valor Padrão: ""

Devolução

Instances

OpenScript

()
Segurança do plugin

Usado para abrir a instância de script dada em uma janela de editor, no Roblox Studio, na linha dada.Se nenhuma linha for dada como argumento, ela padronizará para 1.

Parâmetros

Valor Padrão: ""
lineNumber: number
Valor Padrão: 1

Devolução

()

Amostras de código

The following would open a newly created Script in Workspace, assuming the variable "Plugin" was already declared.

Plugin:OpenScript

local newScript = Instance.new("Script")
newScript.Parent = workspace
plugin:OpenScript(newScript)

OpenWikiPage

()
Segurança do plugin

Abre a janela de ajuda de contexto para a página do wiki que url liga.

Parâmetros

url: string
Valor Padrão: ""

Devolução

()

Amostras de código

The following, when executed in a plugin, will open the BasePart API page in the context help.

Plugin:OpenWikiPage

plugin:OpenWikiPage("API:Class/BasePart")

SaveSelectedToRoblox

()
Segurança do plugin

Abre uma janela de upload para a seleção atual do usuário.


Devolução

()

SelectRibbonTool

()
Segurança do plugin

Ativa a ferramenta Roblox Studio especificada. Se a ferramenta abrir uma janela, o parâmetro de posição especifica onde deve ser exibida na tela.

Nota:

  • Um objeto deve ser selecionado para que isso funcione corretamente.
  • Alterar os campos de escala da propriedade position não afetará os pop-ups de diálogo.

Parâmetros

Valor Padrão: ""
position: UDim2
Valor Padrão: ""

Devolução

()

Separate

Instances
Segurança do plugin

Separa as Operações de União dadas e retorna as peças resultantes.

Parâmetros

objects: Instances
Valor Padrão: ""

Devolução

Instances

SetSetting

()
Segurança do plugin

Armazena um valor dado para uso futuro sob a chave dada.O valor persistirá mesmo após o fechamento do Roblox Studio.Essas configurações são salvas no formato JSON como um mapa com chaves de corda.Arranjos são automaticamente convertidos em mapas convertendo as chaves numéricas em strings primeiro.

Observe que o formato JSON impõe restrições adicionais, incluindo os seguintes caracteres que podem corromper o arquivo de configuração:

  • Retornos de caracteres ( \ ) em chaves ou valores, em especial citações escapadas ( \" ).
  • Novas linhas ( \n ) em chaves.
  • Citações ( " ) em chaves.
  • Períodos ( . ) em chaves.

Essa chamada pode falhar silenciosamente se várias instâncias do mesmo plugin estiverem lendo e escrevendo dados ativamente.Se o seu plugin espera escrever frequentemente nas configurações, você pode verificar se os dados foram escritos corretamente ao chamar Plugin:GetSetting().

Parâmetros

key: string
Valor Padrão: ""
value: Variant
Valor Padrão: ""

Devolução

()

Amostras de código

This code sample demonstrates use of the Plugin:GetSetting() and Plugin:SetSetting() functions. They detect if a plugin is running for the first time by setting a key. If the key is true, it prints a "welcome back" message; otherwise it prints a "first run" message and sets the key to true.

Plugin:GetSetting and Plugin:SetSetting

local RAN_BEFORE_KEY = "RunBefore"
local hasRunBefore = plugin:GetSetting(RAN_BEFORE_KEY)
if hasRunBefore then
print("Welcome back!")
else
print("Thanks for installing this plugin!")
plugin:SetSetting(RAN_BEFORE_KEY, true)
end

StartDrag

()
Segurança do plugin

IniciarArrastar inicia uma ação de arrastamento usando um dicionário de parâmetros. Os parâmetros são os seguintes:


<th>Tipo</th>
<th>Padrão</th>
<th>Descrição</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>Remetente</b></td><td>string</td><td><code>""</code> ></td>
<td>
Identifica a fonte da ação de arrastamento para o alvo de solta
</td>
</tr>
<tr>
<td><b>Tipo de Mime</b></td><td>string</td><td><code>""</code> ></td>
<td>
O tipo <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME</a> de <b>Dados</b>.
</td>
</tr>
<tr>
<td><b>Dados</b></td><td>string</td><td><code>""</code> ></td>
<td>
Informações sobre a ação de arrastar, por exemplo, o que está sendo arrastado. Deve ser usado pelo alvo de solta.
</td>
</tr>
<tr>
<td><b>MouseIcon</b></td><td><code>Datatype.Content</code> ></td><td><code>""</code> ></td>
<td>
O ícone a ser usado para o cursor do mouse durante o arrastamento. Se estiver vazio, usa o cursor padrão.
</td>
</tr>
<tr>
<td><b>DragIcon</b></td><td><code>Datatype.Content</code> ></td><td><code>""</code> ></td>
<td>
Uma imagem para renderizar sob o cursor do mouse durante o arrastamento. Isso deve representar o item sendo arrastado.
</td>
</tr>
<tr>
<td><b>HotSpot</b></td><td><code>Datatype.Vector2</code></td><td><code>Datatype.Vector2.new(0, 0)</code> ></td>
<td>
O deslocamento do pixel da esquerda superior onde o cursor deve "segurar" o <b>DragIcon</b>.
</td>
</tr>
</tbody>
Qual o nome

Veja também:

Parâmetros

dragData: Dictionary
Valor Padrão: ""

Devolução

()

Amostras de código

This code sample creates two plugin widget windows: a drag source and a drop target. In the source window, the script creates a TextBox and TextButton to allow the user to begin a plugin drag action. The drop target window will display the MimeType of whatever is dragged into it using a TextLabel. If the MimeType is text/plain, it will display the plain text data instead.

To run this code sample as a plugin, paste it into a Script. Then, right-click the script in the Explorer window and choose "Save as Local Plugin".

Plugin Drag and Drop

assert(plugin, "This script must be run as a Studio plugin")
local widgetInfo = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 300, 200)
local dragSourceWidget = plugin:CreateDockWidgetPluginGui("Drag Source", widgetInfo)
dragSourceWidget.Title = "Drag Source"
local textBox = Instance.new("TextBox")
textBox.Parent = dragSourceWidget
textBox.Size = UDim2.new(1, 0, 0, 32)
textBox.Text = "Hello, plugin drags"
local dragButton = Instance.new("TextButton")
dragButton.Size = UDim2.new(1, 0, 1, -32)
dragButton.Position = UDim2.new(0, 0, 0, 32)
dragButton.Text = "Edit the text above, then start drag here"
dragButton.Parent = dragSourceWidget
function onMouseButton1Down()
local dragData = {
Sender = "SomeDragSource",
MimeType = "text/plain",
Data = textBox.Text,
MouseIcon = "",
DragIcon = "",
HotSpot = Vector2.new(0, 0),
}
plugin:StartDrag(dragData)
end
dragButton.MouseButton1Down:Connect(onMouseButton1Down)
-- This widget will receive drops
local dragTargetWidget = plugin:CreateDockWidgetPluginGui("Drop Target", widgetInfo)
dragTargetWidget.Title = "Drop Target"
-- This TextLabel will display what was dropped
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.Text = "Drop here..."
textLabel.Parent = dragTargetWidget
local function onDragDrop(dragData)
if dragData.MimeType == "text/plain" then
textLabel.Text = dragData.Data
else
textLabel.Text = dragData.MimeType
end
end
dragTargetWidget.PluginDragDropped:Connect(onDragDrop)
dragTargetWidget.PluginDragEntered:Connect(function(_dragData)
print("PluginDragEntered")
end)
dragTargetWidget.PluginDragLeft:Connect(function(_dragData)
print("PluginDragLeft")
end)
dragTargetWidget.PluginDragMoved:Connect(function(_dragData)
print("PluginDragMoved")
end)
Segurança do plugin

Une as partes dadas e retorna a Operação de União resultante.

Parâmetros

objects: Instances
Valor Padrão: ""

Devolução

CreateDockWidgetPluginGui

Rendimentos
Segurança do plugin

CreateDockWidgetPluginGui cria um novo DockWidgetPluginGui a partir do dado DockWidgetPluginGuiInfo.O primeiro parâmetro, pluginGuiId , deve ser uma string / cadeia / textoúnica e consistente.É usado para salvar o estado do estado do dock do widget e outros detalhes internos.

Parâmetros

pluginGuiId: string

Um identificador exclusivo e consistente usado para armazenar o estado do dock do widget e outros detalhes internos.

Valor Padrão: ""
dockWidgetPluginGuiInfo: DockWidgetPluginGuiInfo

Descreve o DockWidgetPluginGui para criar (estado inicial, tamanho, etc).

Valor Padrão: ""

Devolução

Amostras de código

This code, when ran inside a Plugin, creates a DockWidgetPluginGui with a simple TextButton.

Widget GUI Text Button

-- Create new 'DockWidgetPluginGuiInfo' object
local widgetInfo = DockWidgetPluginGuiInfo.new(
Enum.InitialDockState.Float, -- Widget will be initialized in floating panel
true, -- Widget will be initially enabled
false, -- Don't override the previous enabled state
200, -- Default width of the floating window
300, -- Default height of the floating window
150, -- Minimum width of the floating window (optional)
150 -- Minimum height of the floating window (optional)
)
-- Create new widget GUI
local testWidget = plugin:CreateDockWidgetPluginGui("TestWidget", widgetInfo)
local testButton = Instance.new("TextButton")
testButton.BorderSizePixel = 0
testButton.TextSize = 20
testButton.TextColor3 = Color3.new(1, 0.2, 0.4)
testButton.AnchorPoint = Vector2.new(0.5, 0.5)
testButton.Size = UDim2.new(1, 0, 1, 0)
testButton.Position = UDim2.new(0.5, 0, 0.5, 0)
testButton.SizeConstraint = Enum.SizeConstraint.RelativeYY
testButton.Text = "Click Me"
testButton.Parent = testWidget

ImportFbxAnimation

Rendimentos
Segurança do plugin

Essa função solicita ao usuário que abra um arquivo de animação .fbx que pode ser carregado no rigModel , então procede a inserir a animação como um KeyframeSequence no Workspace .

Parâmetros

rigModel: Instance
Valor Padrão: ""
isR15: boolean
Valor Padrão: true

Devolução

ImportFbxRig

Rendimentos
Segurança do plugin

Solicita ao usuário que abra um arquivo .fbx, carrega os componentes individuais do modelo como malhas e gera um modelo de personagem para uso na animações, que é carregado no Workspace .

Parâmetros

isR15: boolean
Valor Padrão: true

Devolução

PromptForExistingAssetId

Rendimentos
Segurança do plugin

Abre uma janela no Roblox Studio, que solicita ao usuário a seleção de um recurso com base no assetType.Retorna o que assetId foi selecionado, ou -1 se a janela foi fechada.

Parâmetros

assetType: string
Valor Padrão: ""

Devolução

PromptSaveSelection

Rendimentos
Segurança do plugin

Solicita ao usuário que salve sua seleção atual com o nome de arquivo especificado. Retorna verdadeiro se o usuário salvou o arquivo.

Parâmetros

suggestedFileName: string
Valor Padrão: ""

Devolução

Eventos

Deactivation

Segurança do plugin

Dispedido quando o Plugin for desativado.Isso ocorre quando o código do plugin chama Plugin:Deactivate() ou porque algum outro plugin chamou Plugin:Activate(), o que força todos os outros plugins a perder seu estado ativo.

Veja também:

  • Plugin.Unloading , dispara imediatamente antes que o plugin seja descarregado ou recarregado via desinstalação, desativação ou atualização

Unloading

Segurança do plugin

Este evento dispara imediatamente antes de Plugin parar de funcionar.Plugins são descarregados quando desativados, desinstalados, prestes a ser atualizados ou quando o local está fechando.

Habilita um plugin a limpar após si mesmo antes que seus scripts parem de funcionar, por exemplopara remover instâncias desnecessárias do DataModel.Se um plugin não limpar corretamente, as cópias antigas permanecerão.Quando isso ocorre, os usuários podem ser forçados a fechar e reabrir o local, o que é uma má experiência do usuário.

Instâncias relacionadas a plugins como PluginToolbarButtons , DockWidgetPluginGuis e PluginGuis são limpadas automaticamente quando o plugin é descarregado, portanto, não há necessidade de removê-los.