Plugin
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
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
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()
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
Retorna se o usuário habilitou Collisions no Studio na aba Modelo.
Retorna o tamanho de sobreposição da grade que o usuário definiu no Studio.
Métodos
Define o estado do plugin de chamada para ativado.
- CreatePluginAction(actionId : string,text : string,statusTip : string,iconName : string,allowBinding : boolean):PluginAction
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.
Cria um novo menu de plugin.
Cria um novo PluginToolbar com o nome dado.
Desativa o plugin.
Retorna o Enum.JointCreationMode que o usuário definiu no Studio na aba Modelo.
Retorna um Mouse que pode ser usado enquanto o plugin estiver ativo.
Retorna o atualmente selecionado Enum.RibbonTool .
Recupera um valor previamente armazenado com a chave dada, ou nil se a chave dada não existir.
Retorna verdadeiro se este plugin estiver ativo no momento, depois de ter sido ativado através da função Plugin:Activate().
Retorna verdadeiro se este plugin estiver ativo no momento com um mouse exclusivo, depois de ter sido ativado através da função Plugin:Activate().
Nega as peças dadas e retorna as NegateOperations resultantes.
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.
Abre a janela de ajuda de contexto para a página do wiki que url liga.
Abre uma janela de upload para a seleção atual do usuário.
Ativa a ferramenta Roblox Studio especificada.
Separa as Operações de União dadas e retorna as peças resultantes.
Armazena um valor dado para uso futuro sob a chave dada. O valor persistirá mesmo depois que o Studio for fechado.
Inicia uma ação de arrastamento dada um dicionário de parâmetros.
Une as partes dadas e retorna a Operação de União resultante.
- CreateDockWidgetPluginGui(pluginGuiId : string,dockWidgetPluginGuiInfo : DockWidgetPluginGuiInfo):DockWidgetPluginGui
Cria um DockWidgetPluginGui dado um DockWidgetPluginGuiInfo .
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 .
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 .
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.
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.
Eventos
Dispedido quando o plugin é desativado.
Incêndios imediatamente antes de Plugin parar de funcionar.
Propriedades
DisableUIDragDetectorDrags
GridSize
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
Métodos
Activate
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
Um booleano que especifica se deve ativar o plugin com o mouse exclusivo. Se verdadeiro, um PluginMouse pode ser recuperado via Plugin:GetMouse() .
Devolução
CreatePluginAction
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:
- PluginMenu , um menu de contexto que pode ser mostrado no Studio que exibe uma lista de Ações de Plugin e suporta submenus
- Plugin:CreatePluginMenu() , cria um PluginMenu
Parâmetros
Deve ser uma string única que identifica esta Ação de Plugin de outros.
O nome exibido da ação.
A descrição exibida da ação.
O nome do ícone usado para exibir o plugin.
Se o PluginAction será oculto da visão de atalhos do Studio. Útil para ações contextuais. Padrão para verdadeiro.
Devolução
Amostras de código
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
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:
- PluginAction , um objeto que representa uma ação genérica executável no Roblox Studio, sem nenhuma associada diretamente Toolbar ou Enum.Button .
- Plugin:CreatePluginAction() , cria uma Ação de Plugin
- PluginMenu.Title , o texto a ser exibido quando usado como um submenu
- PluginMenu.Icon , o ícone a ser exibido quando usado como submenu
- PluginMenu:AddAction() , adiciona a ação dada ao menu
- PluginMenu:AddNewAction() , cria uma ação temporária que é oculta da janela de atalhos personalizados do Studio
- PluginMenu:AddMenu(), adiciona o menu dado como separador
- PluginMenu:AddSeparator() , adiciona um separador entre os itens no menu
- PluginMenu:Clear() , limpa o menu
- PluginMenu:ShowAsync() , mostra o menu no cursor do mouse.Produz até que um item seja selecionado ou o menu seja fechado.A ação selecionada dispara seu evento Triggered
Parâmetros
ID exclusivo para o menu.
O texto a ser exibido quando usado como submenu.
O ícone a ser exibido quando usado como submenu.
Devolução
Amostras de código
-- 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
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
O texto visível na barra de ferramentas, rotulando o grupo de botões contidos dentro dela.
Devolução
Amostras de código
plugin:CreateToolbar("ExampleToolbar")
Deactivate
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
GetMouse
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
local mouse = plugin:GetMouse()
local function button1Down()
print("Button 1 pressed from PluginMouse")
end
mouse.Button1Down:Connect(button1Down)
GetSelectedRibbonTool
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
plugin:SelectRibbonTool(Enum.RibbonTool.Move, UDim2.new())
task.wait() -- wait for next frame
local selectedRibbonTool = plugin:GetSelectedRibbonTool()
print("The selected RibbonTool is", selectedRibbonTool)
GetSetting
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
Devolução
Amostras de código
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
IsActivated
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
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
Nega as peças dadas e retorna as NegateOperations resultantes.
Parâmetros
Devolução
OpenScript
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
Devolução
Amostras de código
local newScript = Instance.new("Script")
newScript.Parent = workspace
plugin:OpenScript(newScript)
OpenWikiPage
Abre a janela de ajuda de contexto para a página do wiki que url liga.
Parâmetros
Devolução
Amostras de código
plugin:OpenWikiPage("API:Class/BasePart")
SaveSelectedToRoblox
Abre uma janela de upload para a seleção atual do usuário.
Devolução
SelectRibbonTool
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
Devolução
Separate
Separa as Operações de União dadas e retorna as peças resultantes.
Parâmetros
Devolução
SetSetting
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
Devolução
Amostras de código
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
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
Devolução
Amostras de código
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)
Union
Une as partes dadas e retorna a Operação de União resultante.
Parâmetros
Devolução
CreateDockWidgetPluginGui
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
Um identificador exclusivo e consistente usado para armazenar o estado do dock do widget e outros detalhes internos.
Descreve o DockWidgetPluginGui para criar (estado inicial, tamanho, etc).
Devolução
Amostras de código
-- 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
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
Devolução
ImportFbxRig
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
Devolução
PromptForExistingAssetId
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
Devolução
Eventos
Deactivation
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
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.