Plugin

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Non costruibile

Plugin è l'oggetto principale responsabile della creazione di widget di Studio di base, barre degli strumenti dei plugin, pulsanti dei plugin e altro ancora.Si tratta di un add-on personalizzato per Studio che aggiunge nuovi comportamenti e funzionalità che non sono normalmente inclusi.L'oggetto Plugin può essere accessato attraverso il plugin in un Script che viene eseguito come Collegare.

Campioni di codice

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

Sommario

Proprietà

Metodi

Eventi

Proprietà

CollisionEnabled

Sola Lettura
Non Replicato
Lettura Parallela

Restituisce se l'utente ha abilitato Collisions in Studio sotto la scheda Modello.

DisableUIDragDetectorDrags

Sicurezza Script Roblox
Lettura Parallela

GridSize

Sola Lettura
Non Replicato
Lettura Parallela

Restituisce la dimensione di aggancio della griglia che l'utente ha impostato in Studio sotto le schede Modello o Avatar della barra degli strumenti.Si noti che questa proprietà può avere lievi errori di arrotondamento; ad esempio può essere 0.0099999997764826 per una impostazione utente di 1 o 0.4000000059604645 per una impostazione utente di 0.4 .

IsDebuggable

Sicurezza Script Roblox
Lettura Parallela

Metodi

Activate

()
Sicurezza Plugin

Questa funzione imposta lo stato del plugin di chiamata in attivato. L'attivazione del plugin consente il controllo del mouse attraverso il metodo Plugin:GetMouse().

In qualsiasi momento ci sono 0 o 1 plugin attivati.L'attivazione di un plugin disattiverà tutti gli altri plugin ( riceveranno un evento Plugin.Deactivation ).

Vedi anche:

  • Plugin:IsActivatedWithExclusiveMouse() , restituisce vero se questo plugin è attualmente attivo con un topo, or mouse as computer mouseesclusivo, dopo essere stato attivato tramite questa funzione
  • Plugin.Unloading , si attiva immediatamente prima che il plugin venga disinstallato o ricaricato via disattivazione o aggiornamento

Parametri

exclusiveMouse: boolean

Un'impostazione booleana che specifica se attivare il plugin con il Topo, or mouse as computer mouseesclusivo. Se vero, un PluginMouse può essere recuperato tramite Plugin:GetMouse() .

Valore predefinito: ""

Restituzioni

()

CreatePluginAction

Sicurezza Plugin

Questa funzione crea un PluginAction che è un oggetto che rappresenta un'azione generica eseguibile in Roblox Studio, senza alcun Toolbar o Enum.Button direttamente associato.In Roblox Studio, possono essere assegnati scorciatoie da tastiera sotto File → Advanced → Customize Shortcuts… e possono anche essere aggiunti alla barra di accesso rapido.

Quando un'azione viene attivata, l'evento PluginAction.Triggered viene segnalato.

Affinché le azioni del plugin funzionino come previsto, devono essere create utilizzando questa funzione.

Vedi anche:

  • PluginMenu , un menu contestuale che può essere mostrato in Studio che visualizza una lista di PluginActions e supporta i sott menu
  • Plugin:CreatePluginMenu() , crea un PluginMenu

Parametri

actionId: string

Deve essere una stringa unica che identifica questa PluginAction dagli altri.

Valore predefinito: ""
text: string

Il nome visualizzato dell'azione.

Valore predefinito: ""
statusTip: string

La descrizione visualizzata dell'azione.

Valore predefinito: ""
iconName: string

Il nome dell'icona utilizzata per visualizzare il Collegare.

Valore predefinito: ""
allowBinding: boolean

Se il PluginAction sarà nascosto dalla vista scorciatoia di Studio. Utile per le azioni contestuali. Predefinito vero.

Valore predefinito: true

Restituzioni

Campioni di codice

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

Sicurezza Plugin

Questa funzione crea un nuovo PluginMenu , che è un menu contestuale che può essere mostrato in Studio che visualizza una lista di PluginActions e supporta i sott menu.

Affinché i menu plugin funzionino come previsto, devono essere creati utilizzando questa funzione.

Vedi anche:

Parametri

id: string

ID univoco per il menu.

Valore predefinito: ""
title: string

Il testo da mostrare quando viene utilizzato come sottomenù.

Valore predefinito: ""
icon: string

L'icona da mostrare quando viene utilizzata come sottomenù.

Valore predefinito: ""

Restituzioni

Campioni di codice

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

Sicurezza Plugin

La funzione CreateToolbar crea una nuova PluginToolbar con il nome fornito. La barra degli strumenti può quindi essere utilizzata per creare pulsanti di plugin.

Parametri

name: string

Il testo visibile sulla barra degli strumenti, che etichette il gruppo di pulsanti contenuti all'interno.

Valore predefinito: ""

Restituzioni

Campioni di codice

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

Plugin:CreateToolbar

plugin:CreateToolbar("ExampleToolbar")

Deactivate

()
Sicurezza Plugin

Disattiva il Collegare. Ciò disattiverà il PluginMouse associato se è stato attivato

Vedi anche:

  • Plugin:Activate() , imposta lo stato del plugin di chiamata in attivato
  • Plugin.Deactivation , si attiva quando il plugin è disattivato
  • Plugin.Unloading , si attiva immediatamente prima che il plugin venga disinstallato o ricaricato via disattivazione o aggiornamento

Restituzioni

()
Sicurezza Plugin

Restituisce il Enum.JointCreationMode l'utente ha impostato in Studio sotto la scheda Modello.


Restituzioni

GetMouse

Sicurezza Plugin

GetMouse restituisce un PluginMouse che può essere utilizzato mentre il plugin è attivo attraverso Plugin:Activate() .


Restituzioni

Campioni di codice

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

Sicurezza Plugin

GetSelectedRibbonTool restituisce l'attuale strumento selezionato Enum.RibbonTool .Restituisce un Enum che corrisponde a uno strumento particolare.Questo restituirà se lo strumento viene selezionato manualmente o programmaticamente tramite Plugin:SelectRibbonTool() .


Restituzioni

Campioni di codice

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
Sicurezza Plugin

Recupera un valore precedentemente memorizzato con la chiave data, o nil se la chiave data non esiste.

Poiché più istanze dello stesso plugin possono essere eseguite contemporaneamente (ad esempio, se più finestre di Studio sono aperte), non dovresti dipendere da questo valore che rimane lo stesso nel tempo.Le altre istanze di plugin possono aggiornare la configurazione in qualsiasi momento.

Questa chiamata può fallire silenziosamente e restituire nil se più istanze dello stesso plugin stanno leggendo e scrivendo attivamente dati.Se il tuo plugin si aspetta di scrivere spesso nelle impostazioni, dovresti controllare due volte il valore restituito da questa chiamata dopo un breve lasso di tempo per distinguere tra una impostazione non disponibile temporaneamente e una impostazione non esistente.

Parametri

key: string
Valore predefinito: ""

Restituzioni

Variant

Campioni di codice

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

Sicurezza Plugin

Parametri

objects: Instances
Valore predefinito: ""

Restituzioni

IsActivated

Sicurezza Plugin

Questa funzione restituisce vero se questo plugin è attualmente attivo, dopo essere stato attivato tramite la funzione Plugin:Activate().


Restituzioni

Un booleano che indica se il plugin è attualmente attivo.

IsActivatedWithExclusiveMouse

Sicurezza Plugin

Questa funzione restituisce vero se questo plugin è attualmente attivo con un Topo, or mouse as computer mouseesclusivo, dopo essere stato attivato tramite la funzione Plugin:Activate().Se questo restituisce vero, un PluginMouse può essere recuperato tramite Plugin:GetMouse() .

Vedi anche:

  • Plugin.Deactivation , si attiva quando il plugin è disattivato
  • Plugin.Unloading , si attiva immediatamente prima che il plugin venga disinstallato o ricaricato via disattivazione o aggiornamento

Restituzioni

Se questo plugin è attualmente attivo con un Topo, or mouse as computer mouseesclusivo.

Negate

Instances
Sicurezza Plugin

Rimuove le parti date e restituisce le operazioni di negazione conseguenti.

Parametri

objects: Instances
Valore predefinito: ""

Restituzioni

Instances

OpenScript

()
Sicurezza Plugin

Utilizzato per aprire l'istanza dello script specificata in una finestra dell'editor, in Roblox Studio, alla linea specificata.Se non viene data una linea come argomento, prenderà per impostazione predefinita 1.

Parametri

Valore predefinito: ""
lineNumber: number
Valore predefinito: 1

Restituzioni

()

Campioni di codice

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

()
Sicurezza Plugin

Apre la finestra di aiuto del contesto alla pagina wiki a cui url linka.

Parametri

url: string
Valore predefinito: ""

Restituzioni

()

Campioni di codice

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

()
Sicurezza Plugin

Apre una finestra di caricamento per la selezione attuale dell'utente.


Restituzioni

()

SelectRibbonTool

()
Sicurezza Plugin

Attiva lo strumento Roblox Studio specificato. Se lo strumento apre una finestra, il parametro posizione specifica dove deve essere mostrato sullo schermo.

Nota:

  • Deve essere selezionato un oggetto affinché questo funzioni correttamente.
  • La modifica dei campi di scala della proprietà position non influirà sui popup di dialogo.

Parametri

Valore predefinito: ""
position: UDim2
Valore predefinito: ""

Restituzioni

()

Separate

Instances
Sicurezza Plugin

Separa le UnionOperations date e restituisce le parti risultanti.

Parametri

objects: Instances
Valore predefinito: ""

Restituzioni

Instances

SetSetting

()
Sicurezza Plugin

Memorizza un valore dato per un uso successivo sotto la chiave indicata.Il valore persisterà anche dopo che Roblox Studio è stato chiuso.Queste impostazioni vengono salvate nel formato JSON come mappa con chiavi di stringa.Gli array vengono automaticamente convertiti in mappe convertendo prima le chiavi numeriche in stringhe.

Si noti che il formato JSON impone restrizioni aggiuntive, tra cui i seguenti caratteri che possono corrompere il file delle impostazioni:

  • Backslashes ( \ ) in chiavi o valori, in particolare quote scappate ( \" ).
  • Nuove righe ( \n ) nelle chiavi.
  • Quote ( " ) in chiavi.
  • Periodi ( . ) nelle chiavi.

Questa chiamata può fallire silenziosamente se più istanze dello stesso plugin stanno leggendo e scrivendo attivamente dati.Se il tuo plugin si aspetta di scrivere spesso nelle impostazioni, puoi controllare che i dati sono stati scritti correttamente chiamando Plugin:GetSetting() .

Parametri

key: string
Valore predefinito: ""
value: Variant
Valore predefinito: ""

Restituzioni

()

Campioni di codice

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

()
Sicurezza Plugin

StartDrag inizia un'azione di trascinamento utilizzando un dizionario di parametri. I parametri sono i seguenti:


<th>Tipo</th>
<th>Basilare</th>
<th>Descrizione</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>mittente</b></td><td>stringa</td><td><code>""</code> ></td>
<td>
Identifica la fonte dell'azione di trascinamento al bersaglio di rilascio
</td>
</tr>
<tr>
<td><b>MimeType</b></td><td>string</td><td><code>""</code> ></td>
<td>
Il tipo <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME</a> di <b>Dati</b>.
</td>
</tr>
<tr>
<td><b>Dati</b></td><td>stringa</td><td><code>""</code> ></td>
<td>
Informazioni sull'azione di trascinamento, ad esempio cosa viene trascinato. Dovrebbe essere utilizzato dal bersaglio di rilascio.
</td>
</tr>
<tr>
<td><b>MouseIcon</b></td><td><code>Datatype.Content</code> ></td><td><code>""</code> ></td>
<td>
L'icona da utilizzare per il cursore del mouse durante il trascinamento. Se vuoto, utilizza il cursore predefinito.
</td>
</tr>
<tr>
<td><b>DragIcon</b></td><td><code>Datatype.Content</code> ></td><td><code>""</code> ></td>
<td>
Un'immagine da rendere sotto il cursore del mouse durante il trascinamento. Questo dovrebbe rappresentare l'elemento che viene trascinato.
</td>
</tr>
<tr>
<td><b>HotSpot</b></td><td><code>Datatype.Vector2</code></td><td><code>Datatype.Vector2.new(0, 0)</code> ></td>
<td>
Lo spostamento del pixel dalla parte superiore sinistra in cui il cursore dovrebbe "tenere premuto" il <b>DragIcon</b>.
</td>
</tr>
</tbody>
Nome

Vedi anche:

Parametri

dragData: Dictionary
Valore predefinito: ""

Restituzioni

()

Campioni di codice

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)
Sicurezza Plugin

Unisce le parti date e restituisce l'UnionOperation risultante.

Parametri

objects: Instances
Valore predefinito: ""

Restituzioni

CreateDockWidgetPluginGui

Resa
Sicurezza Plugin

CreateDockWidgetPluginGui crea una nuova DockWidgetPluginGui da quella data DockWidgetPluginGuiInfo.Il primo parametro, pluginGuiId , dovrebbe essere una Stringaunica e coerente.Viene utilizzato per salvare lo stato della dock di widget e altri dettagli interni.

Parametri

pluginGuiId: string

Un identificatore univoco e coerente utilizzato per archiviare lo stato del dock del Widgete altri dettagli interni.

Valore predefinito: ""
dockWidgetPluginGuiInfo: DockWidgetPluginGuiInfo

Descrive il DockWidgetPluginGui per creare (stato iniziale, dimensione, ecc.).

Valore predefinito: ""

Restituzioni

Campioni di codice

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

Resa
Sicurezza Plugin

Questa funzione richiede all'utente di aprire un file di animazione .fbx che può essere caricato su rigModel , quindi procede ad inserire l'animazione come KeyframeSequence nel Workspace .

Parametri

rigModel: Instance
Valore predefinito: ""
isR15: boolean
Valore predefinito: true

Restituzioni

ImportFbxRig

Resa
Sicurezza Plugin

Invita l'utente ad aprire un file .fbx, carica le singole componenti del modello come mesh e genera un character rig per l'uso in animazioni, che viene caricato nel Workspace .

Parametri

isR15: boolean
Valore predefinito: true

Restituzioni

PromptForExistingAssetId

Resa
Sicurezza Plugin

Apre una finestra in Roblox Studio, che richiede all'utente di selezionare un'asset in base al assetType specificato.Restituisce ciò che assetId è stato selezionato, o -1 se la finestra è stata chiusa.

Parametri

assetType: string
Valore predefinito: ""

Restituzioni

PromptSaveSelection

Resa
Sicurezza Plugin

Invita l'utente a salvare la selezione attuale con il nome del file specificato. Restituisce vero se l'utente ha salvato il file.

Parametri

suggestedFileName: string
Valore predefinito: ""

Restituzioni

Eventi

Deactivation

Sicurezza Plugin

Spedito quando il Plugin è disattivato.Questo accade quando il codice del plugin chiama Plugin:Deactivate() , o perché qualche altro plugin chiama Plugin:Activate() , il che forza tutti gli altri plugin a perdere il loro stato attivo.

Vedi anche:

  • Plugin.Unloading , si attiva immediatamente prima che il plugin venga disinstallato o ricaricato via disattivazione o aggiornamento

Unloading

Sicurezza Plugin

Questo evento si attiva immediatamente prima che il Plugin smetta di funzionare.I plugin vengono disattivati quando vengono disinstallati, sono in procinto di essere aggiornati o quando il luogo si sta chiudendo.

Consente a un plugin di pulire dopo se stesso prima che i suoi script smettano di funzionare, ad esempioper rimuovere le istanze non necessarie dal DataModel .Se un plugin non si pulisce correttamente, le vecchie copie rimarranno.Quando ciò accade, gli utenti possono essere costretti a chiudere e riaprire il luogo che è una cattiva esperienza utente.

Le istanze correlate al plugin come PluginToolbarButtons , DockWidgetPluginGuis e PluginGuis vengono pulite automaticamente quando il plugin viene disinstallato quindi non c'è bisogno di rimuoverle.