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 base Collegare, barre degli strumenti plugin, pulsanti plugin e altro ancora. È un add-on personalizzato a Studio che aggiunge nuovi comportamenti e funzionalità che non sono normalmente incluse. L'oggetto Plugin può essere accessato tramite la riferimento globale plugin

Campioni di codice

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à

  • Sola Lettura
    Non Replicato
    Lettura Parallela

    Restituisce se l'utente ha abilitato Collisions in studio nella scheda Modello.

  • Sicurezza Script Roblox
    Lettura Parallela
  • Sola Lettura
    Non Replicato
    Lettura Parallela

    Restituisce la dimensione di aggancio della griglia che l'utente ha impostato in Studio.

Metodi

Eventi

Proprietà

CollisionEnabled

Sola Lettura
Non Replicato
Lettura Parallela

Restituisce se l'utente ha abilitato Collisions in studio nella 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 Modello o Avatar tabs. Nota che questa proprietà può avere errori di arrotondamento leggeri; ad esempio, potrebbe essere 0.0099999997764826 per un utente che imposta 1 o 0.400000005960

Metodi

Activate

void
Sicurezza Plugin

Questa funzione imposta lo stato del plugin chiamato in modo che si attivi. L'attivazione del plugin consente il controllo del mouse attraverso il metodo Plugin:GetMouse() .

In qualsiasi momento ci sono 0 o 1 Plug-in Attivati. L'attivazione di un plug-in disattiverà tutti gli altri plug-in ( riceveranno un evento Plugin.Deactivation).

Vedi anche:

  • Plugin:IsActivatedWithExclusiveMouse() , restituisce true 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 unloaded o ri載 tramite uninstallazione, disattivazione o aggiornamento

Parametri

exclusiveMouse: bool

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


Restituzioni

void

CreatePluginAction

Sicurezza Plugin

Questa funzione crea un PluginAction che è un oggetto che rappresenta un'azione generica in Roblox Studio, con nessun Toolbar o Enum.Button . In Roblox Studio, possono essere assegnati una scorciatoia da tastiera sotto 2>File → Avanzato → Personalizza Scorciatoie2> , e possono anche essere aggiunti

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

Affinché PluginActions funzioni come previsto, devono essere creati utilizzando questa funzione.

Vedi anche:

Parametri

actionId: string

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

text: string

Il nome visualizzato dell'azione.

statusTip: string

La descrizione visualizzata dell'azione.

iconName: string

Il nome dell'icona utilizzata per visualizzare il Collegare.

Valore predefinito: ""
allowBinding: bool

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

Valore predefinito: true

Restituzioni

Campioni di codice

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 mostra una lista di PluginActions e supporta i menu sub.

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

Vedi anche:

Parametri

id: string

ID unico per il menu.

title: string

Il testo da mostrare quando viene utilizzato come sottomenu.

Valore predefinito: ""
icon: string

L'icona da mostrare quando viene utilizzata come sottomenu.

Valore predefinito: ""

Restituzioni

Campioni di codice

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 CreaToolbar crea una nuova PluginToolbar con il nome specificato. La barra degli strumenti può quindi essere utilizzata per creare pulsanti plugin.

Parametri

name: string

Il testo visibile nella barra degli strumenti, etichettando il gruppo di pulsanti contenuti all'interno.


Restituzioni

Campioni di codice

Plugin:CreateToolbar

plugin:CreateToolbar("ExampleToolbar")

Deactivate

void
Sicurezza Plugin

Disattiva il Collegare. Questo disengagerà 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 unloaded o ri載 tramite uninstallazione, disattivazione o aggiornamento

Restituzioni

void
Sicurezza Plugin

Restituisce il Enum.JointCreationMode che l'utente ha impostato in studio nella 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

Plugin:GetMouse

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

GetSelectedRibbonTool

Sicurezza Plugin

GetSelectedRibbonTool return the currently selected Enum.RibbonTool . It returns an Enum that corresponds to a particular strumento. This will return whether the tool is selected manually or programmatically via Plugin:SelectRibbonTool() .


Restituzioni

Campioni di codice

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 specificata, o nulla se la chiave specificata non esiste.

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

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

Parametri

key: string

Restituzioni

Variant

Campioni di codice

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

Restituzioni

IsActivated

Sicurezza Plugin

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


Restituzioni

Un bool che indica se il plugin è attivo o no.

IsActivatedWithExclusiveMouse

Sicurezza Plugin

Questa funzione restituisce true se questo plugin è attualmente attivo con un Topo, or mouse as computer mouseesclusivo, dopo essere stato attivato tramite la funzione Plugin:Activate(). Se questa restituisce true, 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 unloaded o ri載 tramite uninstallazione, disattivazione o aggiornamento

Restituzioni

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

Negate

Instances
Sicurezza Plugin

Nega le parti specificate e restituisce le operazioni di negazione risultanti.

Parametri

objects: Instances

Restituzioni

Instances

OpenScript

void
Sicurezza Plugin

Utilizzato per aprire la relativa istanza script in una finestra editor in Roblox, alla linea specificata. Se non viene fornito alcun argomento, predefinito 1.

Parametri

lineNumber: number
Valore predefinito: 1

Restituzioni

void

Campioni di codice

Plugin:OpenScript

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

OpenWikiPage

void
Sicurezza Plugin

Apre la finestra di aiuto contestuale alla pagina wiki a cui si riferisce.

Parametri

url: string

Restituzioni

void

Campioni di codice

Plugin:OpenWikiPage

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

SaveSelectedToRoblox

void
Sicurezza Plugin

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


Restituzioni

void

SelectRibbonTool

void
Sicurezza Plugin

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

Nota:

  • Un oggetto deve essere selezionato perché questo funzioni correttamente.
  • La modifica dei campi di dimensioni della proprietà position non influisce sui popup di dialogo.

Parametri

position: UDim2

Restituzioni

void

Separate

Instances
Sicurezza Plugin

Separa le seguenti operazioni dell'Unione e restituisce le parti risultanti.

Parametri

objects: Instances

Restituzioni

Instances

SetSetting

void
Sicurezza Plugin

memorizza un valore specificato per un uso futuro sotto la chiave specificata. Il valore persiste anche dopo aver chiuso Roblox Studio. Questi valori vengono salvati nel formato JSON come mappa con chiavi di strina. Gli array vengono convertiti automaticamente in mappe convertendo prima i valori numerici in chiavi di strina.

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

  • Backslashes ( \ ) in keys or values, in particular escaped quote ( \" ).
  • Nuove righe ( \n ) in chiavi.
  • Quotes ( " ) in keys.
  • Periodi ( ) in chiavi.

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

Parametri

key: string
value: Variant

Restituzioni

void

Campioni di codice

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

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


<tbody>
<tr>
<td><b>mittente</b></td>
<td>stringa</td>
<td><code>""</code></td>
<td>
Identifica la fonte dell'azione di trascinamento per la destinazione
</td>
</tr>
<tr>
<td><b>MimeType</b></td>
<td>stringa</td>
<td><code>""</code></td>
<td>
Il tipo <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIM</a> di <b>Data</b> .
</td>
</tr>
<tr>
<td><b>Dati</b></td>
<td>stringa</td>
<td><code>""</code></td>
<td>
Informazioni sull'azione di trascinamento, ad esempio ciò che viene trascinato. Dovrebbe essere utilizzato dal target di trascinamento.
</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 mouse cursor 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>
L'Offset del pixel dalla parte superiore a sinistra in cui il cursor dovrebbe "tenere" il <b>DragIcon</b> .
</td>
</tr>
</tbody>
NomeTipoPredefinitoDescrizione

Vedi anche:

Parametri

dragData: Dictionary

Restituzioni

void

Campioni di codice

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 fornite e restituisce l'UnioneOperation risultante.

Parametri

objects: Instances

Restituzioni

CreateDockWidgetPluginGui

Resa
Sicurezza Plugin

CreateDockWidgetPluginGui crea un nuovo DockWidgetPluginGui dal DockWidgetPluginGuiInfo . Il primo parametro, 0> uginGuiId0>, dovrebbe essere una Stringaunica e coerente. Viene utilizzato per salvare lo stato del widget's dock state e altri dettagli interni.

Parametri

pluginGuiId: string

Un identificatore unico e coerente utilizzato per memorizzare lo stato del molo del Widgete altri dettagli interni.

dockWidgetPluginGuiInfo: DockWidgetPluginGuiInfo

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


Restituzioni

Campioni di codice

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 animazione .fbx che può essere caricato sul rigModel, quindi procede ad inserire l'animazione come KeyframeSequence nella Workspace .

Parametri

rigModel: Instance
isR15: bool
Valore predefinito: true

Restituzioni

ImportFbxRig

Resa
Sicurezza Plugin

Richiede all'utente di aprire un file .fbx, carica i singoli componenti del modello come maglie e genera un personaggio rig per l'uso in animazioni, che viene caricato nel Workspace .

Parametri

isR15: bool
Valore predefinito: true

Restituzioni

PromptForExistingAssetId

Resa
Sicurezza Plugin

Apre una finestra in Roblox Studio, che richiede all'utente di selezionare una risorsa in base al assetType specificato. Ritorna l'ID della risorsa selezionata, o -1 se la finestra è stata chiusa.

Parametri

assetType: string

Restituzioni

PromptSaveSelection

Resa
Sicurezza Plugin

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

Parametri

suggestedFileName: string
Valore predefinito: ""

Restituzioni

Eventi

Deactivation

Sicurezza Plugin

Si verifica quando il plugin è disattivato. Questo si verifica quando uno qualsiasi del codice del plugin chiama Plugin , o quando qualche altro plugin ha chiamato Plugin:Deactivate() , che forza tutti gli altri plugin a perdere lo stato attivo.

Vedi anche:

  • Plugin.Unloading , si attiva immediatamente prima che il plugin venga unloaded o ri載 tramite uninstallazione, disattivazione o aggiornamento

Unloading

Sicurezza Plugin

Questo evento si attiva immediatamente prima che il Plugin smetti di eseguire. I plugin vengono disattivati quando sono disabilitati, non installati, in attesa di essere aggiornati o quando il luogo si sta chiudendo.

Consente a un plugin di pulirsi prima di sé prima che i suoi script smettano di essere eseguiti, ad esempio per rimuovere le istanze non necessarie dal DataModel . Se un plugin non pulisce in modo corretto, le vecchie copie rimarranno. Quando questo avviene, gli utenti potrebbero essere costretti a chiudere e riaprire il luogo che è un'esperienza utente negativa.

Le istanze plugin- correlate come PluginToolbarButtons , DockWidgetPluginGuis e PluginGuis vengono puliti automaticamente quando il plugin viene unloaded, so there is no need to remove them.