Plugin
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
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
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
Sommario
Proprietà
Restituisce se l'utente ha abilitato Collisions in studio nella scheda Modello.
Restituisce la dimensione di aggancio della griglia che l'utente ha impostato in Studio.
Metodi
Imposta lo stato del plugin di chiamata su attivato.
- CreatePluginAction(actionId : string,text : string,statusTip : string,iconName : string,allowBinding : bool):PluginAction
Crea un oggetto PluginAction che rappresenta un'azione generica in Roblox Studio, con nessun Toolbar o Enum.Button direttamente associato.
Crea un nuovo menu plugin.
Crea un nuovo PluginToolbar con il nome specificato.
Disattiva il Collegare.
Restituisce il Enum.JointCreationMode che l'utente ha impostato in studio nella scheda Modello.
Restituisce un Mouse che può essere utilizzato mentre il plugin è attivo.
Restituisce il currently selected Enum.RibbonTool .
Recupera un valore precedentemente memorizzato con la chiave specificata, o nulla se la chiave specificata non esiste.
Restituisce vero se questo plugin è attivo al momento, dopo essere stato attivato tramite la funzione Plugin:Activate().
Restituisce vero se questo plugin è attualmente attivo con un Topo, or mouse as computer mouseesclusivo, dopo essere stato attivato tramite la funzione Plugin:Activate().
Nega le parti specificate e restituisce le operazioni di negazione risultanti.
Utilizzato per aprire la relativa istanza script in una finestra editor in Roblox, alla linea specificata. Se non viene fornito alcun argomento, predefinito 1.
Apre la finestra di aiuto contestuale alla pagina wiki a cui si riferisce.
Apre una finestra di caricamento per la selezione attuale dell'utente.
Attiva lo strumento Roblox Studio specificato.
Separa le seguenti operazioni dell'Unione e restituisce le parti risultanti.
Salva un valore specificato per un uso futuro sotto la chiave specificata. Il valore persiste anche dopo la chiusura dello studio.
Inizia un'azione di trascinamento in cui viene fornito un dizionario di parametri.
Unisce le parti fornite e restituisce l'UnioneOperation risultante.
- CreateDockWidgetPluginGui(pluginGuiId : string,dockWidgetPluginGuiInfo : DockWidgetPluginGuiInfo):DockWidgetPluginGui
Crea un DockWidgetPluginGui dato un DockWidgetPluginGuiInfo .
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 .
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 .
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.
Invita l'utente a salvare la sua attuale selezione con il nome del file specificato. Ritorna vero se l'utente ha salvato il file.
Eventi
Si attiva quando il plugin è disattivato.
Spara immediatamente prima che Plugin smetti di eseguire.
Proprietà
DisableUIDragDetectorDrags
GridSize
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
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
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
CreatePluginAction
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:
- PluginMenu , un menu contestuale che può essere mostrato in Studio che mostra una lista di AzioniPlugin e supporta sottomenu
- Plugin:CreatePluginMenu() , crea un PluginMenu
Parametri
Deve essere una stringa unica che identifica questa PluginAction dagli altri.
Il nome visualizzato dell'azione.
La descrizione visualizzata dell'azione.
Il nome dell'icona utilizzata per visualizzare il Collegare.
Se il PluginAction sarà nascosto dalla vista degli scorciatoie di Studio. Utile per le azioni contestuali. Predefinito vero.
Restituzioni
Campioni di codice
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
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:
- PluginAction , un oggetto che rappresenta un'azione generica in Roblox Studio, con nessun Toolbar o Enum.Button .
- Plugin:CreatePluginAction() , crea un PluginAction
- PluginMenu.Title , il testo da mostrare quando usato come sottomenù
- PluginMenu.Icon , l'icona da mostrare quando usato come sub menu
- PluginMenu:AddAction() , aggiunge l'azione fornita al menu
- PluginMenu:AddNewAction() , crea un'azione temporanea che è nascosta dalla finestra di scorciatoie azione personalizzata di Studio
- PluginMenu:AddMenu() , aggiunge il menu dato come separatore
- PluginMenu:AddSeparator() , aggiunge un separatore tra gli elementi nel menu
- PluginMenu:Clear() , limita il menu
- PluginMenu:ShowAsync() , mostra il menu al cursore del mouse. Si attiva fino a quando non viene selezionato un elemento o il menu viene chiuso. L'azione selezionata attiva il suo evento innescato
Parametri
ID unico per il menu.
Il testo da mostrare quando viene utilizzato come sottomenu.
L'icona da mostrare quando viene utilizzata come sottomenu.
Restituzioni
Campioni di codice
-- 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 funzione CreaToolbar crea una nuova PluginToolbar con il nome specificato. La barra degli strumenti può quindi essere utilizzata per creare pulsanti plugin.
Parametri
Il testo visibile nella barra degli strumenti, etichettando il gruppo di pulsanti contenuti all'interno.
Restituzioni
Campioni di codice
plugin:CreateToolbar("ExampleToolbar")
Deactivate
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
GetJoinMode
Restituisce il Enum.JointCreationMode che l'utente ha impostato in studio nella scheda Modello.
Restituzioni
GetMouse
GetMouse restituisce un PluginMouse che può essere utilizzato mentre il plugin è attivo attraverso Plugin:Activate() .
Restituzioni
Campioni di codice
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 strumento. This will return whether the tool is selected manually or programmatically via Plugin:SelectRibbonTool() .
Restituzioni
Campioni di codice
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 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
Restituzioni
Campioni di codice
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
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
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
Nega le parti specificate e restituisce le operazioni di negazione risultanti.
Parametri
Restituzioni
OpenScript
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
Restituzioni
Campioni di codice
local newScript = Instance.new("Script")
newScript.Parent = workspace
plugin:OpenScript(newScript)
OpenWikiPage
Apre la finestra di aiuto contestuale alla pagina wiki a cui si riferisce.
Parametri
Restituzioni
Campioni di codice
plugin:OpenWikiPage("API:Class/BasePart")
SaveSelectedToRoblox
Apre una finestra di caricamento per la selezione attuale dell'utente.
Restituzioni
SelectRibbonTool
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
Restituzioni
Separate
Separa le seguenti operazioni dell'Unione e restituisce le parti risultanti.
Parametri
Restituzioni
SetSetting
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
Restituzioni
Campioni di codice
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
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>
Nome | Tipo | Predefinito | Descrizione |
---|
Vedi anche:
Parametri
Restituzioni
Campioni di codice
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
Unisce le parti fornite e restituisce l'UnioneOperation risultante.
Parametri
Restituzioni
CreateDockWidgetPluginGui
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
Un identificatore unico e coerente utilizzato per memorizzare lo stato del molo del Widgete altri dettagli interni.
Descrive il DockWidgetPluginGui per creare (stato iniziale, dimensioni, ecc).
Restituzioni
Campioni di codice
-- 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
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
Restituzioni
ImportFbxRig
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
Restituzioni
PromptForExistingAssetId
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
Restituzioni
Eventi
Deactivation
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
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.