Plugin

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

No creable

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

Muestras de código

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

Resumen

Propiedades

  • Solo lectura
    No replicado
    Leer paralelo

    Devuelve si el usuario habilitó Collisions en el estudio en la pestaña Modelo.

  • Solo lectura
    No replicado
    Leer paralelo

    Restablece el tamaño de enganchamiento de la cuadrícula que ha establecido el usuario en Studio.

Métodos

Eventos

Propiedades

CollisionEnabled

Solo lectura
No replicado
Leer paralelo

Devuelve si el usuario habilitó Collisions en el estudio en la pestaña Modelo.

DisableUIDragDetectorDrags

Leer paralelo
Seguridad de scripts Roblox

GridSize

Solo lectura
No replicado
Leer paralelo

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

void
Seguridad del plugin

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

exclusiveMouse: bool

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() .


Devuelve

void

CreatePluginAction

Seguridad del plugin

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

actionId: string

Debe ser una cadena única que identifique esta acción de plugin de otros.

text: string

El nombre mostrado de la acción.

statusTip: string

La descripción mostrada de la acción.

iconName: string

El nombre del icono utilizado para mostrar el complemento.

Valor predeterminado: ""
allowBinding: bool

Si el PluginAction será oculto de la vista de atajos de Studio. Útil para las acciones contextuales. Por defecto, es true.

Valor predeterminado: true

Devuelve

Muestras de código

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

Seguridad del plugin

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:

Parámetros

id: string

ID único para el menú.

title: string

El texto para mostrar cuando se usa como un sub menú.

Valor predeterminado: ""
icon: string

El icono para mostrar cuando se usa como un sub menú.

Valor predeterminado: ""

Devuelve

Muestras de código

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

Seguridad del plugin

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

name: string

El texto visible en la barra de herramientas, etiquetando el grupo de botones contenido dentro.


Devuelve

Muestras de código

Plugin:CreateToolbar

plugin:CreateToolbar("ExampleToolbar")

Deactivate

void
Seguridad del plugin

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

Devuelve

void
Seguridad del plugin

Devuelve el Enum.JointCreationMode que el usuario ha establecido en el estudio en la pestaña Modelo.


Devuelve

GetMouse

Seguridad del plugin

GetMouse 返回一个 PluginMouse que se puede usar mientras el plugin está activo a través de Plugin:Activate() .


Devuelve

Muestras de código

Plugin:GetMouse

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

GetSelectedRibbonTool

Seguridad del plugin

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() .


Devuelve

Muestras de código

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
Seguridad del plugin

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

key: string

Devuelve

Variant

Muestras de código

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

Seguridad del plugin

Parámetros

objects: Instances

Devuelve

IsActivated

Seguridad del plugin

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().


Devuelve

Un valor deBooleano que indica si el plugin está actualmente activo.

IsActivatedWithExclusiveMouse

Seguridad del plugin

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

Devuelve

Si este plugin está actualmente activo con un ratónexclusivo.

Negate

Instances
Seguridad del plugin

Negar las partes dadas y devolver las Operaciones Negativas resultantes.

Parámetros

objects: Instances

Devuelve

Instances

OpenScript

void
Seguridad del plugin

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

lineNumber: number
Valor predeterminado: 1

Devuelve

void

Muestras de código

Plugin:OpenScript

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

OpenWikiPage

void
Seguridad del plugin

Abre la ventana de ayuda contextual a la página de wiki a la que se enlaza.

Parámetros

url: string

Devuelve

void

Muestras de código

Plugin:OpenWikiPage

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

SaveSelectedToRoblox

void
Seguridad del plugin

Abre una ventana de subida para la selección actual del usuario.


Devuelve

void

SelectRibbonTool

void
Seguridad del plugin

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

position: UDim2

Devuelve

void

Separate

Instances
Seguridad del plugin

Separa las Operaciones de Unión dadas y devuelve las partes resultantes.

Parámetros

objects: Instances

Devuelve

Instances

SetSetting

void
Seguridad del plugin

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

key: string
value: Variant

Devuelve

void

Muestras de código

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

void
Seguridad del plugin

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>
NombreTipoPor defectoDescripción

Véase también:

Parámetros

dragData: Dictionary

Devuelve

void

Muestras de código

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)
Seguridad del plugin

Une las partes dadas y devuelve la Operación de Unión resultante.

Parámetros

objects: Instances

Devuelve

CreateDockWidgetPluginGui

Proporciona
Seguridad del plugin

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

pluginGuiId: string

Un identificador único y consistente que se utiliza para almacenar el estado de muelle del widget y otros detalles internos.

dockWidgetPluginGuiInfo: DockWidgetPluginGuiInfo

Describe el DockWidgetPluginGui para crear (estado inicial, tamaño, etc).


Devuelve

Muestras de código

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

Proporciona
Seguridad del plugin

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

rigModel: Instance
isR15: bool
Valor predeterminado: true

Devuelve

ImportFbxRig

Proporciona
Seguridad del plugin

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

isR15: bool
Valor predeterminado: true

Devuelve

PromptForExistingAssetId

Proporciona
Seguridad del plugin

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

assetType: string

Devuelve

PromptSaveSelection

Proporciona
Seguridad del plugin

Solicita al usuario guardar su selección actual con el nombre de archivo especificado. Regresa veraz si el usuario guardó el archivo.

Parámetros

suggestedFileName: string
Valor predeterminado: ""

Devuelve

Eventos

Deactivation

Seguridad del plugin

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

Seguridad del plugin

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.