Plugin

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Création impossible

Le plugin est l'objet principal responsable de la création de base des widgets Studio, des barres d'outils de plugin, des boutons de plugin et plus encore. Il s'agit d'un ajout personnalisé à Studio qui ajoute de nouveaux comportements et fonctionnalités qui ne sont pas normalement inclus. L'objet plugin peut être accédé via la référence globale Global.RobloxGlob

Échantillons de code

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

Résumé

Propriétés

  • Lecture uniquement
    Non répliqué
    Lecture parallèle

    Retourne si l'utilisateur a activé Collisions dans le studio sous l'onglet modèle.

  • Lecture uniquement
    Non répliqué
    Lecture parallèle

    Renvoie la taille de grille que l'utilisateur a définie dans Studio.

Méthodes

Évènements

Propriétés

CollisionEnabled

Lecture uniquement
Non répliqué
Lecture parallèle

Retourne si l'utilisateur a activé Collisions dans le studio sous l'onglet modèle.

DisableUIDragDetectorDrags

Lecture parallèle
Sécurité des scripts Roblox

GridSize

Lecture uniquement
Non répliqué
Lecture parallèle

Retourne la taille d'accrochage de grille que l'utilisateur a définie dans Studio sous les Modèle ou Avatar onglets. Notez que cette propriété peut avoir des erreurs d'arrondissement légères ; par exemple, il peut être 0.0099999997764826 pour un utilisateur défini de 1 ou 0.40000000596046

Méthodes

Activate

void
Sécurité des plugins

Cette fonction démarre l'état du plugin d'appel en activé. L'activation du plugin permet le contrôle de la souris via la méthode Plugin:GetMouse().

À tout moment, il y a soit 0 soit 1 Plugins activés. L'activation d'un plugin désactive tous les autres plugins (ils recevront un événement Plugin.Deactivation).

Voir aussi :

  • Plugin:IsActivatedWithExclusiveMouse() , renvoie vrai si ce plugin est actuellement actif avec une souris exclusive, après avoir été activé via cette fonction
  • Plugin.Unloading , se déclenche immédiatement avant que le plugin soit déchargé ou rechargé via un désinstallation, une désactivation ou une mise à jour

Paramètres

exclusiveMouse: bool

Un boolé qui spécifie si activer le plugin avec une souris exclusive. Si oui, un PluginMouse peut être récupéré via Plugin:GetMouse().


Retours

void

CreatePluginAction

Sécurité des plugins

Cette fonction crée un PluginAction qui est un objet qui représente une action générique exécutable dans Roblox Studio, sans Toolbar ou Enum.Button . Dans Roblox Studio, ils peuvent être attribués à un raccourci clavier sous 2>File → Advanced → Customize Shortcuts…2>, et ils peuvent également être ajoutés à la barre d'outils rapide.

Lorsqu'une action est déclenchée, l'événement PluginAction.Triggered est signalé.

Pour que les actions de plugin fonctionnent comme prévu, elles doivent être créées à l'aide de cette fonction.

Voir aussi :

  • PluginMenu , un menu contextuel qui peut être affiché dans Studio qui affiche une liste de PluginActions et prend en charge les sous-menus
  • Plugin:CreatePluginMenu() , crée un PluginMenu

Paramètres

actionId: string

Doit être une chaîne unique qui identifie cette action de plugin d'autres.

text: string

Nom affiché de l'action.

statusTip: string

Description de l'action affichée.

iconName: string

Le nom de l'icône utilisée pour afficher le plugin.

Valeur par défaut : ""
allowBinding: bool

Whether the PluginAction will be hidden from Studio's shortcuts voir. Useful for contextual actions. Defaults to true.

Valeur par défaut : true

Retours

Échantillons de code

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

Sécurité des plugins

Cette fonction crée un nouveau PluginMenu, qui est un menu contextuel qui peut être affiché dans Studio qui affiche une liste de PluginActions et prend en charge les sous-menus.

Afin que les menus Plugin fonctionnent comme prévu, ils doivent être créés à l'aide de cette fonction.

Voir aussi :

Paramètres

id: string

ID unique pour le menu.

title: string

Le texte à afficher lorsqu'il est utilisé comme un sous-菜.

Valeur par défaut : ""
icon: string

L'icône à afficher lorsqu'elle est utilisée comme un sous-菜.

Valeur par défaut : ""

Retours

Échantillons de code

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

Sécurité des plugins

La fonction Créer une barre d'outils crée une nouvelle PluginToolbar avec le nom donné. La barre d'outils peut ensuite être utilisée pour créer des boutons de plugin.

Paramètres

name: string

Le texte visible sur la barre d'outils, étiquetant le groupe de boutons contenu à l'intérieur.


Retours

Échantillons de code

Plugin:CreateToolbar

plugin:CreateToolbar("ExampleToolbar")

Deactivate

void
Sécurité des plugins

Désactive le plugin. Ceci déconnectera le PluginMouse associé s'il a été activé

Voir aussi :

  • Plugin:Activate() , définit l'état du plugin d'appel activé
  • Plugin.Deactivation , se déclenche lorsque le plugin est désactivé
  • Plugin.Unloading , se déclenche immédiatement avant que le plugin soit déchargé ou rechargé via un désinstallation, une désactivation ou une mise à jour

Retours

void
Sécurité des plugins

Retourne le Enum.JointCreationMode que l'utilisateur a défini dans le studio sous l'onglet Modèle.


Retours

GetMouse

Sécurité des plugins

GetMouse renvoie un PluginMouse qui peut être utilisé pendant que le plugin est actif via Plugin:Activate().


Retours

Échantillons de code

Plugin:GetMouse

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

GetSelectedRibbonTool

Sécurité des plugins

GetSelectedRibbonTool return the currently selected Enum.RibbonTool . Il renvoie un Enum qui correspond à un outil spécifique. Cela renverra si l'outil est sélectionné manuellement ou programmiquement via Plugin:SelectRibbonTool() .


Retours

Échantillons de code

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
Sécurité des plugins

Récupère une valeur stockée précédemment avec la clé donnée, ou zéro si la clé donnée n'existe pas.

Puisque plusieurs instances du même plugin peuvent s'exécuter simultanément (par exemple, si plusieurs fenêtres Studio sont ouvertes), vous ne devriez pas dépendre de cette valeur restant la même au fil du temps. Les autres instances du plugin peuvent mettre à jour la valeur à tout moment.

Cet appel peut échouer silencieusement et renvoyer nil si plusieurs instances du même plugin lisent et écrire des données actuellement. Si votre plugin s'attend à écrire dans les paramètres fréquemment, vous devriez vérifier manuellement la valeur renvoyée de ce call après un court moment pour distinguer entre un paramètre temporairement indisponible et un paramètre non existant.

Paramètres

key: string

Retours

Variant

Échantillons de code

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

Sécurité des plugins

Paramètres

objects: Instances

Retours

IsActivated

Sécurité des plugins

Cette fonction renvoie vrai si ce plugin est actuellement actif, après avoir été activé via la fonction Plugin:Activate().


Retours

Un booléen indiquant si le plugin est actuellement actif.

IsActivatedWithExclusiveMouse

Sécurité des plugins

Cette fonction renvoie vrai si ce plugin est actuellement actif avec une souris exclusive, après avoir été activé via la fonction Plugin:Activate(). Si cela renvoie vrai, un PluginMouse peut être récupéré via Plugin:GetMouse().

Voir aussi :

  • Plugin.Deactivation , se déclenche lorsque le plugin est désactivé
  • Plugin.Unloading , se déclenche immédiatement avant que le plugin soit déchargé ou rechargé via un désinstallation, une désactivation ou une mise à jour

Retours

Whether ce plugin est actuellement actif avec une souris exclusive.

Negate

Instances
Sécurité des plugins

Néga les parties données et renvoie les opérations de négation résultantes.

Paramètres

objects: Instances

Retours

Instances

OpenScript

void
Sécurité des plugins

Utilisé pour ouvrir l'instance de script donnée dans une fenêtre d'éditeur, dans Roblox Studio, à la ligne donnée. Si aucune ligne n'est donnée en tant qu'argument, il s'agira de 1.

Paramètres

lineNumber: number
Valeur par défaut : 1

Retours

void

Échantillons de code

Plugin:OpenScript

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

OpenWikiPage

void
Sécurité des plugins

Ouvre la fenêtre contextuelle d'aide au wiki à laquelle url se rattache.

Paramètres

url: string

Retours

void

Échantillons de code

Plugin:OpenWikiPage

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

SaveSelectedToRoblox

void
Sécurité des plugins

Ouvre une fenêtre de téléchargement pour la sélection actuelle de l'utilisateur.


Retours

void

SelectRibbonTool

void
Sécurité des plugins

Active l'outil Roblox Studio spécifié. Si l'outil ouvre une fenêtre, le paramètre de position spécifie l'endroit où il doit être affiché sur l'écran.

Remarque :

  • Un objet doit être sélectionné pour que cela fonctionne correctement.
  • La modification des champs d'échelle de la propriété position n'affectera pas les popups de dialogue.

Paramètres

position: UDim2

Retours

void

Separate

Instances
Sécurité des plugins

Sépare les opérations d'Union données et renvoie les parties résultantes.

Paramètres

objects: Instances

Retours

Instances

SetSetting

void
Sécurité des plugins

Stocke une valeur donnée pour une utilisation ultérieure sous la clé donnée. La valeur persiste même après la fermeture de Roblox Studio. Ces paramètres sont enregistrés au format JSON comme une carte avec des clés de chaîne. Les tableaux sont automatiquement convertis en cartes en convertissant d'abord les clés numériques en chaînes.

Notez que le format JSON impose des restrictions supplémentaires, y compris les caractères suivants qui peuvent corrompre le fichier de paramètres :

  • Backslashes ( \ ) dans les clés ou les valeurs, en particulier les quottes échappées ( \" ).
  • Nouvelles lignes ( \n ) dans les clés.
  • Citations ( " ) dans les clés.
  • Les périodes ( . ) dans les clés.

Ce call peut échouer silencieusement si plusieurs instances du même plugin lisent et écrire des données actuellement. Si votre plugin s'attend à écrire dans les paramètres fréquemment, vous pouvez vérifier que les données ont été correctement écrites en appelant Plugin:GetSetting() .

Paramètres

key: string
value: Variant

Retours

void

Échantillons de code

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
Sécurité des plugins

Débuter le glisser INITIE une action de glisser en utilisant un dictionnaire de paramètres. Les paramètres sont les suivants :


<tbody>
<tr>
<td><b>Expéditeur</b></td>
<td>chaîne</td>
<td><code>""</code></td>
<td>
Identifie la source de l'action de glissement à la cible de dépôt
</td>
</tr>
<tr>
<td><b>Type de mime</b></td>
<td>chaîne</td>
<td><code>""</code></td>
<td>
Le <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">type MIME</a> de <b>Données</b> .
</td>
</tr>
<tr>
<td><b>Données</b></td>
<td>chaîne</td>
<td><code>""</code></td>
<td>
Informations sur l'action de déplacement, par exemple ce qui est déplacé. Doit être utilisé par la cible de déplacement.
</td>
</tr>
<tr>
<td><b>Icône de souris</b></td>
<td><code>Datatype.Content</code></td>
<td><code>""</code></td>
<td>
L'icône à utiliser pour le curseur de la souris pendant le déplacement. Si vide, utilise le curseur par défaut.
</td>
</tr>
<tr>
<td><b>Icône de glisser</b></td>
<td><code>Datatype.Content</code></td>
<td><code>""</code></td>
<td>
Une image à rendre sous le curseur de la souris pendant le déplacement. Cela devrait représenter l'élément qui est déplacé.
</td>
</tr>
<tr>
<td><b>HotSpot</b></td>
<td><code>Datatype.Vector2</code></td>
<td><code>Datatype.Vector2.new(0, 0)</code></td>
<td>
Le décalage de pixel de l'en haut à gauche où le curseur doit "tenir" le <b>DragIcon</b> .
</td>
</tr>
</tbody>
NomTypePar défautDescription

Voir aussi :

Paramètres

dragData: Dictionary

Retours

void

Échantillons de code

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)
Sécurité des plugins

Unionne les parties données et renvoie l'UnionOperation de résultat.

Paramètres

objects: Instances

Retours

CreateDockWidgetPluginGui

Rendement
Sécurité des plugins

CreateDockWidgetPluginGui crée un nouveau DockWidgetPluginGui à partir du DockWidgetPluginGuiInfo donné. Le premier paramètre, 0> uginGuiId0>, doit être un chaîne unique et cohérente. Il est utilisé pour enregistrer l'état du statut du widget et d'autres détails internes.

Paramètres

pluginGuiId: string

Un identifiant unique et cohérent utilisé pour stocker l'état du quai du widget et d'autres détails internes.

dockWidgetPluginGuiInfo: DockWidgetPluginGuiInfo

Décrivez le DockWidgetPluginGui pour créer (état initial, taille, etc).


Retours

Échantillons de code

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

Rendement
Sécurité des plugins

Cette fonction demande à l'utilisateur d'ouvrir un fichier d'animation .fbx qui peut être chargé sur le rigModel, puis insère l'animation en tant que KeyframeSequence dans le Workspace.

Paramètres

rigModel: Instance
isR15: bool
Valeur par défaut : true

Retours

ImportFbxRig

Rendement
Sécurité des plugins

Invite l'utilisateur à ouvrir un fichier .fbx, télécharge les composants individuels du modèle en mailles et génère un chariot de personnage pour l'utiliser dans l'animations, qui est chargé dans le Workspace .

Paramètres

isR15: bool
Valeur par défaut : true

Retours

PromptForExistingAssetId

Rendement
Sécurité des plugins

Ouvre une fenêtre dans Roblox Studio, qui invite l'utilisateur à sélectionner une ressource en fonction du assetType spécifié. Renvoie l'objet de type de ressource sélectionné, ou -1 si la fenêtre était fermée.

Paramètres

assetType: string

Retours

PromptSaveSelection

Rendement
Sécurité des plugins

Invite l'utilisateur à enregistrer son sélection actuelle avec le nom de fichier spécifié. Retourne vrai si l'utilisateur a enregistré le fichier.

Paramètres

suggestedFileName: string
Valeur par défaut : ""

Retours

Évènements

Deactivation

Sécurité des plugins

Activé lorsque le Plugin est désactivé. Cela se produit lorsque le code du plugin appelle Plugin:Deactivate(), ou parce que un autre plugin appelle Plugin:Activate(), ce qui force tous les autres plugins à perdre leur état actif.

Voir aussi :

  • Plugin.Unloading , se déclenche immédiatement avant que le plugin soit déchargé ou rechargé via un désinstallation, une désactivation ou une mise à jour

Unloading

Sécurité des plugins

Cet événement se déclenche immédiatement avant la fermeture de Plugin. Les plugins sont déchargés lorsqu'ils sont désactivés, désinstallés, sur le point d'être mis à jour ou quand le lieu ferme.

Il permet à un plugin de se nettoyer avant lui-même avant que ses scripts arrêtent de fonctionner, par exemple pour supprimer des instances inutiles du DataModel. Si un plugin ne se nettoie pas correctement, les anciennes copies resteront. Lorsque cela se produit, les utilisateurs peuvent être forcés de fermer et de rouvrir l'endroit qui est une mauvaise expérience d'utilisateur.

Les instances liées aux plugins, telles que PluginToolbarButtons , DockWidgetPluginGuis et PluginGuis sont automatiquement nettoyées lorsque le plugin est déchargé afin qu'il n'y ait pas besoin de les supprimer.