Plugin
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
El complementoes el objeto principal responsable de crear widgets básicos de Studio, barras de herramientas de plugin, botones de plugin y más. Es un objeto de add-on personalizado para Studio que agrega nuevos comportamientos y características que no se incluyen normalmente. El objeto complementose puede acceder a través de la referencia global Global.RobloxGlobals.ugin en un Class.Script
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
Devuelve si el usuario habilitó Collisions en el estudio en la pestaña Modelo.
Restablece el tamaño de enganchamiento de la cuadrícula que ha establecido el usuario en Studio.
Métodos
Establece el estado del plugin de llamada a activado.
- CreatePluginAction(actionId : string,text : string,statusTip : string,iconName : string,allowBinding : bool):PluginAction
Crea un PluginAction que es un objeto que representa un acción genérica en Roblox Studio, sin asociar directamente Toolbar o Enum.Button .
Crea un nuevo menú de plugin.
Crea un nuevo PluginToolbar con el nombre dado.
Desactiva el complemento.
Devuelve el Enum.JointCreationMode que el usuario ha establecido en el estudio en la pestaña Modelo.
Regresa un Mouse que se puede usar mientras el plugin esté activo.
Devuelve el Enum.RibbonTool seleccionado actualmente.
Recupera un valor previamente almacenado con la clavedada, o nulo si la llave dada no existe.
Regresa true si este plugin está actualmente activo, después de haber sido activado a través de la función Plugin:Activate() .
Regresa veraz 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 Negativas 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 ninguna línea como argumento, se establecerá por defecto a 1.
Abre la ventana de ayuda contextual a la página de wiki a la que se enlaza.
Abre una ventana de subida para la selección actual del usuario.
Activa la herramienta especificada de Roblox Studio.
Separa las Operaciones de Unión dadas y devuelve las partes resultantes.
Almacena un valor dado para su uso futuro bajo la clavedada. El valor persistirá incluso después de que se cierre el estudio.
Comienza una acción de arrastre dada una lista 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 .
Indicaciones al usuario para abrir un archivo de animación .fbx que se puede cargar en el rigModel , luego proporciona para insertar la animación como un KeyframeSequence en el Workspace .
Solicita al usuario que abra un archivo .fbx, carga los componentes individuales del modelo como mallas y genera un personaje para su uso en animaciones, que se carga en el Workspace .
Abre una ventana en Roblox Studio, que solicita al usuario seleccionar un activo en función del assetType especificado. Muestra el ID de activo seleccionado, o -1 si la ventana se cerró.
Solicita al usuario guardar su selección actual con el nombre de archivo especificado. Regresa veraz si el usuario guardó el archivo.
Eventos
Se activa cuando el plugin está desactivado.
Dispara inmediatamente antes de que Plugin deje de funcionar.
Propriedades
DisableUIDragDetectorDrags
GridSize
Restaura el tamaño de la cuadrícula de captura de gráficos que el usuario ha establecido en Studio en las pestañas Modelo o Avatar. Nota que esta propiedad puede tener ligeros errores de redondeo; por ejemplo, puede ser 0.0099999997764826 para un usuario que establece 1 o 0.4000000059
Métodos
Activate
Esta función establece el estado del plugin de llamada 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 (llenarán un evento de Plugin.Deactivation).
Véase también:
- Plugin:IsActivatedWithExclusiveMouse() , devuelve true 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 cargue o se reactive a través de la desinstalación, la desactivación o la actualización
Parâmetros
Un valor deBooleano que especifica si se activa el plugin con un ratónexclusivo. Si es así, un PluginMouse se puede recuperar a través de Plugin:GetMouse() .
Devolução
CreatePluginAction
Esta función crea un PluginAction que es un objeto que representa un acción genérica en Roblox Studio, sin asociar directamente Toolbar o Enum.Button . En Roblox Studio, pueden asignarse un atajo de teclado bajo 1> File → Advanced → Customize Shortcuts…1> , y también se pueden agregar a
Cuando se activa una acción, el evento PluginAction.Triggered es señalado.
Para que funcionen las acciones de plugin como esperado, deben crearse usando esta función.
Véase también:
- PluginMenu , un menú contextual que se puede mostrar en Studio que muestra una lista de acciones de plugin y soporta submenús
- Plugin:CreatePluginMenu() , crea un PluginMenú
Parâmetros
Debe ser una cadena única que identifique esta acción de plugin de otros.
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 será oculto de la vista de atajos de Studio. Útil para las acciones contextuales. Por defecto, es true.
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
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 plugin funcionen como se espera, deben crearse usando esta función.
Véase también:
- PluginAction, un objeto que representa un ajuste de acción genérico en Roblox Studio, sin asociar directamente Toolbar o Enum.Button .
- Plugin:CreatePluginAction() , crea una Acción de Plugin
- PluginMenu.Title , el texto a mostrar cuando se usa como un sub menú
- PluginMenu.Icon , el icono para mostrar cuando se usa como un sub menú
- PluginMenu:AddAction() , añade la acción dada al menú
- PluginMenu:AddNewAction() , crea una acción temporal que está oculta de la ventana de acceso rápido de Studio
- PluginMenu:AddMenu() , añade el menú dado como separador
- PluginMenu:AddSeparator() , agrega un separador entre los elementos en el menú
- PluginMenu:Clear() , limpia el menú
- PluginMenu:ShowAsync() , muestra el menú en el cursor del mouse. Se genera hasta que se seleccione un elemento o se cierre el menú. La acción seleccionada activa su evento Triggered
Parâmetros
ID único para el menú.
El texto para mostrar cuando se usa como un sub menú.
El icono para mostrar cuando se usa como un sub menú.
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
La función CrearTab crea un nuevo PluginToolbar con el nombre dado. La barra de herramientas se puede entonces usar para crear botones de plugin.
Parâmetros
El texto visible en la barra de herramientas, etiquetando el grupo de botones contenido dentro.
Devolução
Amostras de código
plugin:CreateToolbar("ExampleToolbar")
Deactivate
Desactiva el complemento. Esto desvinculará el PluginMouse asociado si se ha activado
Véase también:
- Plugin:Activate() , establece el estado del plugin de llamada a activado
- Plugin.Deactivation , se activa cuando el plugin está desactivado
- Plugin.Unloading , se activa inmediatamente antes de que el plugin se cargue o se reactive a través de la desinstalación, la desactivación o la actualización
Devolução
GetJoinMode
Devuelve el Enum.JointCreationMode que el usuario ha establecido en el estudio en la pestaña Modelo.
Devolução
GetMouse
GetMouse 返回一个 PluginMouse que se puede usar mientras el plugin está activo a travé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 return the currently selected Enum.RibbonTool . It returns an Enum that corresponds to a particular herramienta. This will return whether the tool is selected manually or programmatically 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 un valor previamente almacenado con la clavedada, o nulo si la llave dada no existe.
Dado que múltiples instancias del mismo plugin pueden ejecutarse simultáneamente (por ejemplo, si se abren múltiples ventanas de Studio), no deberías depender de este valor para mantenerlo constante con el tiempo. Las otras instancias del plugin pueden actualizar la configuración en cualquier momento.
Esta llamada puede fallar silenciosamente y devolver nil si se activan múltiples instancias del mismo plugin y están leyendo y escribiendo datos activamente. Si tu plugin espera escribir a los ajustes con frecuencia, debes verificar el valor devuelto de esta llamada después de un corto tiempo para distinguir entre un ajuste temporalmente no disponible y un ajuste no existente.
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
Esta función se activa si esta plugin está activo actualmente, después de haber sido activado a través de la función Plugin:Activate().
Devolução
Un valor deBooleano que indica si el plugin está actualmente activo.
IsActivatedWithExclusiveMouse
Esta función返回 true 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返回 true, un PluginMouse puede ser recuperado a través de Plugin:GetMouse() .
Véase también:
- Plugin.Deactivation , se activa cuando el plugin está desactivado
- Plugin.Unloading , se activa inmediatamente antes de que el plugin se cargue o se reactive a través de la desinstalación, la desactivación o la actualización
Devolução
Si este plugin está actualmente activo con un ratónexclusivo.
Negate
Negar las partes dadas y devolver las Operaciones Negativas resultantes.
Parâmetros
Devolução
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 ninguna línea como argumento, se establecerá por defecto a 1.
Parâmetros
Devolução
Amostras de código
local newScript = Instance.new("Script")
newScript.Parent = workspace
plugin:OpenScript(newScript)
OpenWikiPage
Abre la ventana de ayuda contextual a la página de wiki a la que se enlaza.
Parâmetros
Devolução
Amostras de código
plugin:OpenWikiPage("API:Class/BasePart")
SaveSelectedToRoblox
Abre una ventana de subida para la selección actual del usuario.
Devolução
SelectRibbonTool
Activa la herramienta especificada de Roblox Studio. Si la herramienta abre una ventana, el parámetro de posición especifica dónde debe mostrarse en la pantalla.
Nota:
- Debe seleccionarse un objeto para que esto funcione correctamente.
- Cambiar los campos de escala de la propiedad position no afectará a las ventanas de diálogo.
Parâmetros
Devolução
Separate
Separa las Operaciones de Unión dadas y devuelve las partes resultantes.
Parâmetros
Devolução
SetSetting
Almacena un valor dado para su uso futuro bajo la llave dada. El valor persistirá incluso después de que se cierre Roblox Studio. Estas configuraciones se guardan en formato JSON como un mapa con cadenas de claves. Los matices se convierten automáticamente en mapas al convertir las claves numéricas en cadenas de claves primero.
Tenga en cuenta que el formato JSON impondrá restricciones adicionales, incluidos los siguientes personajes que pueden corromper el archivo de configuración:
- Backslashes ( \ ) en las llaves o valores, en particular las escapadas de citas ( \" ).
- Nuevas líneas ( \n ) en las llaves.
- Citas ( " ) en las llaves.
- 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 con frecuencia a los ajustes, puedes verificar que los datos se hayan escrito correctamente al llamar 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
Inicia una acción de arrastre inicia una acción de arrastre usando un diccionario de parámetros. Los parámetros son los siguientes:
<tbody><tr><td><b>Remitente</b></td><td>cadena</td><td><code>""</code></td><td>Identifica la fuente de la acción de arrastre a la que se une</td></tr><tr><td><b>Tipo de meme</b></td><td>cadena</td><td><code>""</code></td><td>El tipo <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MINE</a> de <b>Datos</b> .</td></tr><tr><td><b>Datos</b></td><td>cadena</td><td><code>""</code></td><td>Información sobre la acción de arrastrar, por ejemplo, qué se está arrastrando. Debe usar el objetivo de arrastre.</td></tr><tr><td><b>Icono de ratón</b></td><td><code>Datatype.Content</code></td><td><code>""</code></td><td>El icono para usar el cursor del mouse durante el arrastre. Si está vacío, usa el cursor predeterminado.</td></tr><tr><td><b>Icono de arrastre</b></td><td><code>Datatype.Content</code></td><td><code>""</code></td><td>Una imagen para rendrer debajo del cursor del mouse durante el arrastre. Esto debería representar el artículo que se arrastra.</td></tr><tr><td><b>Punto Caliente</b></td><td><code>Datatype.Vector2</code></td><td><code>Datatype.Vector2.new(0, 0)</code></td><td>El desplazamiento de píxeles desde la parte superior izquierda donde el cursor debe "mantener" el <b>DragIcon</b> .</td></tr></tbody>
Nombre | Tipo | Por defecto | Descripción |
---|
Véase también:
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 las partes dadas y devuelve la Operación de Unión resultante.
Parâmetros
Devolução
CreateDockWidgetPluginGui
CreateDockWidgetPluginGui crea un nuevo DockWidgetPluginGui a partir de la siguiente DockWidgetPluginGuiInfo . El primer parámetro, 0> uginGuiId0>, debe ser una cadena única y consistente. Se utiliza para guardar el estado del estado del widgety otros detalles internos.
Parâmetros
Un identificador único y consistente que se utiliza para almacenar el estado de muelle del widget y otros detalles internos.
Describe el DockWidgetPluginGui para crear (estado inicial, tamaño, 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
Esta función 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 .
Parâmetros
Devolução
ImportFbxRig
Solicita al usuario que abra un archivo .fbx, carga los componentes individuales del modelo como mallas y genera un personaje para su uso en animaciones, que se carga en el Workspace .
Parâmetros
Devolução
PromptForExistingAssetId
Abre una ventana en Roblox Studio, que solicita al usuario seleccionar un activo en función del assetType especificado. Muestra el ID de activo seleccionado, o -1 si la ventana se cerró.
Parâmetros
Devolução
Eventos
Deactivation
Se ha disparado cuando el Plugin no está desactivado. Esto se produce cuando el código del plugin llama a Plugin:Deactivate() o porque algún otro plugin llama a Plugin:Activate() , que obliga a todos los demás plugins a perder su estado activo.
Véase también:
- Plugin.Unloading , se activa inmediatamente antes de que el plugin se cargue o se reactive a través de la desinstalación, la desactivación o la actualización
Unloading
Este evento se activa inmediatamente antes de que Plugin deje de funcionar. Los plugins se desactivan cuando se desactivan, se desinstalan, se están actualizando o se está cerrando el lugar.
Permite a un plugin limpiarse antes de que sus scripts dejen de funcionar, por ejemplo, para eliminar instancias no necesarias del DataModel . Si un plugin no limpia correctamente, las copias antiguas se mantendrán. Cuando esto ocurra, los usuarios pueden ser obligados a cerrar y reabrir el lugar que es una mala experiencia de usuario.
Instancias relacionadas con plugins como PluginToolbarButtons , DockWidgetPluginGuis y PluginGuis se limpian automáticamente cuando se desea cargar el plugin para que no sea necesario eliminarlos.