Plugin
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
El plugin es el objeto principal responsable de crear widgets básicos de Studio, barras de herramientas de plugin, botones de plugin y más.Es un complemento personalizado para Studio que añade nuevo comportamiento y características que no se incluyen normalmente.El objeto Plugin se puede acceder a través de la referencia global plugin en un Script que se ejecuta como plugin.
Muestras 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.
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
Resumen
Propiedades
Devuelve si el usuario habilitó Collisions en Studio bajo la pestaña de modelo.
Devuelve el tamaño de ajuste de la cuadrícula que el usuario ha establecido en Studio.
Métodos
Establece el estado del plugin de llamada en activado.
- CreatePluginAction(actionId : string,text : string,statusTip : string,iconName : string,allowBinding : boolean):PluginAction
Crea un PluginAction que es un objeto que representa una acción genérica ejecutable en Roblox Studio, sin ningún asociado directamente Toolbar o Enum.Button .
Crea un nuevo menú de plugins.
Crea un nuevo PluginToolbar con el nombre dado.
Desactiva el complemento.
Devuelve el Enum.JointCreationMode que el usuario ha establecido en Studio en la pestaña de modelo.
Devuelve un Mouse que se puede utilizar mientras el plugin está activo.
Devuelve el Enum.RibbonTool.
Recupera un valor previamente almacenado con la clave dada, o nil si la clave dada no existe.
Devuelve verdadero si este plugin está actualmente activo, después de haber sido activado a través de la función Plugin:Activate().
Devuelve verdadero si este plugin está actualmente activo con un ratónexclusivo, después de haber sido activado a través de la función Plugin:Activate().
Negar las partes dadas y devolver las operaciones de negación resultantes.
Se usa para abrir la instancia de script dada en una ventana de editor, en Roblox Studio, en la línea dada.Si no se da una línea como argumento, se asignará por defecto a 1.
Abre la ventana de ayuda de contexto a la página del wiki a la que se enlaza url.
Abre una ventana de carga para la selección actual del usuario.
Activa la herramienta de Roblox Studio especificada.
Separa las operaciones de unión dadas y devuelve las piezas resultantes.
Almacena un valor dado para su uso posterior bajo la clave dada. El valor persistirá incluso después de que Studio se cierre.
Inicia una acción de arrastrado dada un diccionario de parámetros.
Une las partes dadas y devuelve la operación de unión resultante.
- CreateDockWidgetPluginGui(pluginGuiId : string,dockWidgetPluginGuiInfo : DockWidgetPluginGuiInfo):DockWidgetPluginGui
Crea un DockWidgetPluginGui dado un DockWidgetPluginGuiInfo .
Solicita al usuario que abra un archivo de animación .fbx que se puede cargar en el rigModel , luego procede a insertar la animación como un KeyframeSequence en el Workspace .
Solicita al usuario que abra un archivo .fbx, sube los componentes individuales del modelo como mallas y genera un personaje para usar en la animaciones, que se carga en el Workspace .
Abre una ventana en Roblox Studio, que le solicita al usuario que seleccione un activo basado en el assetType especificado.Devuelve qué ID de activo se seleccionó o -1 si la ventana se cerró.
Solicita al usuario que guarde su selección actual con el nombre de archivo especificado. Devuelve verdadero si el usuario guardó el archivo.
Eventos
Despedido cuando el plugin se desactiva.
Se incendia inmediatamente antes de que Plugin deje de funcionar.
Propiedades
CollisionEnabled
Devuelve si el usuario habilitó Collisions en Studio bajo la pestaña de modelo.
DisableUIDragDetectorDrags
GridSize
Devuelve el tamaño de ajuste de la cuadrícula que el usuario ha establecido en Studio bajo las pestañas Modelo o Avatar de la barra de herramientas.Tenga en cuenta que esta propiedad puede tener errores de redondeo ligeros; por ejemplo, puede ser 0.0099999997764826 para una configuración de usuario de 1 o 0.4000000059604645 para una configuración de usuario de 0.4 .
IsDebuggable
Métodos
Activate
Esta función establece el estado del plugin de llamada en activado. Activar el plugin permite el control del mouse a través del método Plugin:GetMouse().
En cualquier momento hay 0 o 1 plugins activados.Activar un plugin desactivará todos los demás plugins (recibirán un evento Plugin.Deactivation).
Vea también:
- Plugin:IsActivatedWithExclusiveMouse() , devuelve verdadero si este plugin está actualmente activo con un ratónexclusivo, después de haber sido activado a través de esta función
- Plugin.Unloading , se activa inmediatamente antes de que el plugin se desactive o se vuelva a cargar a través de la desinstalación, desactivación o actualización
Parámetros
Un booleano que especifica si se debe activar el plugin con el ratónexclusivo. Si es verdadero, un PluginMouse se puede recuperar a través de Plugin:GetMouse() .
Devuelve
CreatePluginAction
Esta función crea un PluginAction que es un objeto que representa una acción genérica ejecutable en Roblox Studio, sin asociación directa Toolbar o Enum.Button.En Roblox Studio, se les puede asignar un atajo de teclado bajo File → Advanced → Customize Shortcuts… , y también se pueden agregar a la barra de acceso rápido.
Cuando se activa una acción, se señala el evento PluginAction.Triggered .
Para que las acciones de plugin funcionen como se espera, deben crearse usando esta función.
Vea también:
- PluginMenu , un menú contextual que se puede mostrar en Studio que muestra una lista de PluginActions y soporta submenús
- Plugin:CreatePluginMenu() , crea un menú de plugins
Parámetros
Debe ser una cadena única que identifica esta acción de plugin de otras.
El nombre mostrado de la acción.
La descripción mostrada de la acción.
El nombre del icono utilizado para mostrar el complemento.
Si el PluginAction se ocultará de la vista de atajos de Studio. Útil para acciones contextuales. Por defecto, se establece en verdadero.
Devuelve
Muestras 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!.
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
Esta función crea un nuevo PluginMenu , que es un menú contextual que se puede mostrar en Studio que muestra una lista de PluginActions y soporta submenús.
Para que los menús de plugins funcionen como se espera, deben crearse usando esta función.
Vea también:
- PluginAction , un objeto que representa una acción genérica ejecutable en Roblox Studio, sin ninguna asociada directamente Toolbar o Enum.Button .
- Plugin:CreatePluginAction() , crea una acción de plugin
- PluginMenu.Title , el texto que se mostrará cuando se use como submenú
- PluginMenu.Icon , el icono que se mostrará cuando se use como submenú
- PluginMenu:AddAction() , añade la acción dada al menú
- PluginMenu:AddNewAction() , crea una acción temporal que está oculta de la ventana de atajos personalizados de Studio
- PluginMenu:AddMenu() , añade el menú dado como separador
- PluginMenu:AddSeparator() , añade un separador entre los elementos en el menú
- PluginMenu:Clear() , limpia el menú
- PluginMenu:ShowAsync() , muestra el menú en el cursor del mouse.Produce hasta que se seleccione un artículo o se cierre el menú.La acción seleccionada dispara su evento activado
Parámetros
ID único para el menú.
El texto que se mostrará cuando se use como submenú.
El icono que se mostrará cuando se use como submenú.
Devuelve
Muestras 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.
-- 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
La función Crear barra de herramientas crea una nueva PluginToolbar con el nombre dado. La barra de herramientas se puede usar para crear botones de plugin.
Parámetros
El texto visible en la barra de herramientas, etiquetando el grupo de botones contenido dentro.
Devuelve
Muestras de código
This code creates a toolbar with the name "ExampleToolbar".
plugin:CreateToolbar("ExampleToolbar")
Deactivate
Desactiva el complemento. Esto desenganchará el asociado PluginMouse si se ha activado
Vea también:
- Plugin:Activate() , establece el estado del plugin de llamada en activado
- Plugin.Deactivation , se activa cuando el plugin está desactivado
- Plugin.Unloading , se activa inmediatamente antes de que el plugin se desactive o se vuelva a cargar a través de la desinstalación, desactivación o actualización
Devuelve
GetJoinMode
Devuelve el Enum.JointCreationMode que el usuario ha establecido en Studio en la pestaña de modelo.
Devuelve
GetMouse
GetMouse devuelve un PluginMouse que se puede usar mientras el plugin está activo a través de Plugin:Activate() .
Devuelve
Muestras de código
This code would print Button 1 pressed from PluginMouse each time the mouse's left button was clicked.
local mouse = plugin:GetMouse()
local function button1Down()
print("Button 1 pressed from PluginMouse")
end
mouse.Button1Down:Connect(button1Down)
GetSelectedRibbonTool
GetSelectedRibbonTool devuelve la herramienta seleccionada actualmente Enum.RibbonTool .Devuelve un Enum que corresponde a una herramienta particular.Esto devolverá si la herramienta se selecciona manualmente o programáticamente a través de Plugin:SelectRibbonTool() .
Devuelve
Muestras 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:SelectRibbonTool(Enum.RibbonTool.Move, UDim2.new())
task.wait() -- wait for next frame
local selectedRibbonTool = plugin:GetSelectedRibbonTool()
print("The selected RibbonTool is", selectedRibbonTool)
GetSetting
Recupera un valor previamente almacenado con la clave dada, o nil si la clave dada no existe.
Debido a que varias instancias del mismo plugin pueden ejecutarse simultáneamente (por ejemplo, si varias ventanas de Studio están abiertas), no deberías depender de que este valor se mantenga igual con el tiempo.Las otras instancias de plugin pueden actualizar la configuración en cualquier momento.
Esta llamada puede fallar silenciosamente y devolver nil si varias instancias del mismo plugin están leyendo y escribiendo activamente datos.Si tu plugin espera escribir a las configuraciones con frecuencia, deberías revisar dos veces el valor devuelto de esta llamada después de un breve período de tiempo para distinguir entre una configuración que no está disponible temporalmente y una configuración que no existe.
Parámetros
Devuelve
Muestras 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.
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
Esta función devuelve verdadero si este plugin está actualmente activo, después de haber sido activado a través de la función Plugin:Activate().
Devuelve
Un booleano que indica si el plugin está actualmente activo.
IsActivatedWithExclusiveMouse
Esta función devuelve verdadero si este plugin está actualmente activo con un ratónexclusivo, después de haber sido activado a través de la función Plugin:Activate().Si esto devuelve verdadero, un PluginMouse se puede recuperar a través de Plugin:GetMouse() .
Vea también:
- Plugin.Deactivation , se activa cuando el plugin está desactivado
- Plugin.Unloading , se activa inmediatamente antes de que el plugin se desactive o se vuelva a cargar a través de la desinstalación, desactivación o actualización
Devuelve
Si este plugin está actualmente activo con un ratónexclusivo.
Negate
Negar las partes dadas y devolver las operaciones de negación resultantes.
Parámetros
Devuelve
OpenScript
Se usa para abrir la instancia de script dada en una ventana de editor, en Roblox Studio, en la línea dada.Si no se da una línea como argumento, se asignará por defecto a 1.
Parámetros
Devuelve
Muestras de código
The following would open a newly created Script in Workspace, assuming the variable "Plugin" was already declared.
local newScript = Instance.new("Script")
newScript.Parent = workspace
plugin:OpenScript(newScript)
OpenWikiPage
Abre la ventana de ayuda de contexto a la página del wiki a la que se enlaza url.
Parámetros
Devuelve
Muestras de código
The following, when executed in a plugin, will open the BasePart API page in the context help.
plugin:OpenWikiPage("API:Class/BasePart")
SaveSelectedToRoblox
Abre una ventana de carga para la selección actual del usuario.
Devuelve
SelectRibbonTool
Activa la herramienta de Roblox Studio especificada. Si la herramienta abre una ventana, el parámetro de posición especifica dónde debe mostrarse en la pantalla.
Nota:
- Un objeto debe ser seleccionado para que esto funcione correctamente.
- Alterar los campos de escala de la propiedad position no afectará los popups de diálogo.
Parámetros
Devuelve
Separate
Separa las operaciones de unión dadas y devuelve las piezas resultantes.
Parámetros
Devuelve
SetSetting
Almacena un valor dado para su uso posterior bajo la clave dada.El valor persistirá incluso después de que Roblox Studio se cierre.Estas configuraciones se guardan en formato JSON como un mapa con claves de cadena.Los arreglos se convierten automáticamente a mapas al convertir primero las claves numéricas a cadenas.
Tenga en cuenta que el formato JSON impone restricciones adicionales, incluidos los siguientes caracteres que pueden corromper el archivo de configuración:
- Retrocesos ( \ ) en claves o valores, en particular citas escapadas ( \" ).
- Nuevas líneas ( \n ) en las claves.
- Citas ( " ) en claves.
- Periodos ( . ) en claves.
Esta llamada puede fallar silenciosamente si varias instancias del mismo plugin están leyendo y escribiendo activamente datos.Si tu plugin espera escribir a las configuraciones con frecuencia, puedes verificar que los datos se hayan escrito correctamente llamando Plugin:GetSetting() .
Parámetros
Devuelve
Muestras 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.
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
Iniciar arrastrar inicia una acción de arrastrado usando un diccionario de parámetros. Los parámetros son los siguientes:
<th>Tipo</th><th>Por defecto</th><th>Descripción</th></tr></thead><tbody><tr><td><b>Remitente</b></td><td>texto</td><td><code>""</code></td><td>Identifica la fuente de la acción de arrastre al objetivo de soltar</td></tr><tr><td><b>Tipo de mime</b></td><td>texto</td><td><code>""</code></td><td>El tipo <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME</a> de <b>datos</b>.</td></tr><tr><td><b>Datos</b></td><td>texto</td><td><code>""</code></td><td>Información sobre la acción de arrastrar, por ejemplo, qué se está arrastrando. Debe usarse por el objetivo de soltar.</td></tr><tr><td><b>MouseIcon</b></td><td><code>Datatype.Content</code></td><td><code>""</code></td><td>El icono para usar con el cursor del mouse durante el arrastre. Si está vacío, usa el cursor predeterminado.</td></tr><tr><td><b>DragIcon</b></td><td><code>Tipo de datos.Contenido</code></td><td><code>""</code> ></td><td>Una imagen para renderizar bajo el cursor de la ratón durante el arrastre. Esto debería representar el artículo que se arrastra.</td></tr><tr><td><b>Punto caliente</b></td><td><code>Datotipo.Vector2</code></td><td><code>Datotipo.Vector2.new(0, 0)</code></td><td>El desplazamiento píxel desde la parte superior izquierda donde el cursor debe "mantener" el <b>DragIcon</b>.</td></tr></tbody>
Nombre |
---|
Vea también:
Parámetros
Devuelve
Muestras 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".
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 las partes dadas y devuelve la operación de unión resultante.
Parámetros
Devuelve
CreateDockWidgetPluginGui
CreateDockWidgetPluginGui crea un nuevo DockWidgetPluginGui desde el dado DockWidgetPluginGuiInfo .El primer parámetro, pluginGuiId , debe ser una cadena única y consistente.Se usa para guardar el estado del estado del puerto del widget y otros detalles internos.
Parámetros
Un identificador único y consistente que se utiliza para almacenar el estado del puerto del widget y otros detalles internos.
Describe el DockWidgetPluginGui para crear (estado inicial, tamaño, etc.).
Devuelve
Muestras de código
This code, when ran inside a Plugin, creates a DockWidgetPluginGui with a simple TextButton.
-- 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
Esta función le pide al usuario que abra un archivo de animación .fbx que se puede cargar en el rigModel , luego procede a insertar la animación como un KeyframeSequence en el Workspace .
Parámetros
Devuelve
ImportFbxRig
Solicita al usuario que abra un archivo .fbx, sube los componentes individuales del modelo como mallas y genera un personaje para usar en la animaciones, que se carga en el Workspace .
Parámetros
Devuelve
PromptForExistingAssetId
Abre una ventana en Roblox Studio, que le solicita al usuario que seleccione un activo basado en el assetType especificado.Devuelve qué ID de activo se seleccionó o -1 si la ventana se cerró.
Parámetros
Devuelve
Eventos
Deactivation
Despedido cuando el Plugin está desactivado.Esto ocurre cuando el código del plugin llama Plugin:Deactivate() o porque algún otro plugin llamó Plugin:Activate() , lo que obliga a todos los demás plugins a perder su estado activo.
Vea también:
- Plugin.Unloading , se activa inmediatamente antes de que el plugin se desactive o se vuelva a cargar a través de la desinstalación, desactivación o actualización
Unloading
Este evento se activa inmediatamente antes de que los Plugin dejen de funcionar.Los plugins se desactivan cuando se desactivan, se eliminan, están a punto de actualizarse o cuando el lugar se está cerrando.
Habilita a un plugin para limpiarse después de sí mismo antes de que sus scripts dejen de funcionar, por ejemplopara eliminar instancias innecesarias de la DataModel .Si un plugin no se limpia correctamente, las copias antiguas permanecerán.Cuando esto ocurre, los usuarios pueden verse obligados a cerrar y reabrir el lugar, lo cual es una mala experiencia de usuario.
Las instancias relacionadas con los plugins como PluginToolbarButtons , DockWidgetPluginGuis y PluginGuis se limpian automáticamente cuando se desinstala el plugin, por lo que no hay necesidad de eliminarlas.