Classe de moteur
Plugin
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Résumé
Propriétés
Méthodes
Événements
Échantillons de code
Script - Passer la référence globale du plugin à un ModuleScript
assert(plugin, "Ce script doit être exécuté en tant que plugin!")
-- Le code au-delà de ce point s'exécutera uniquement si le script est exécuté en tant que plugin
-- Charger le module et passer la référence du plugin
local pluginModule = require(script.Parent.PluginModule)
pluginModule:Initialize(plugin)
-- Vérifier si la référence du plugin a été initialisée
pluginModule:CheckForPluginGlobal()ModuleScript - Recevoir et stocker le global du plugin
local pluginModule = {}
local plugin -- Référence locale du plugin
-- Initialiser la référence du plugin si elle n'est pas déjà définie
function pluginModule:Initialize(pluginReference: Plugin)
if plugin ~= pluginReference then
plugin = pluginReference
else
error("Le plugin est déjà initialisé")
end
end
-- Vérifier si la référence du plugin est définie et imprimer les informations appropriées
function pluginModule:CheckForPluginGlobal()
if plugin ~= nil then
print("La référence du plugin est définie !")
else
warn("La référence du plugin est manquante !")
end
end
return pluginModuleRéférence API
Propriétés
Méthodes
CreateDockWidgetPluginGui
CreateDockWidgetPluginGuiAsync
Plugin:CreateDockWidgetPluginGuiAsync(
Paramètres
Retours
Échantillons de code
Bouton Texte GUI Widget
-- Créer un nouvel objet 'DockWidgetPluginGuiInfo'
local widgetInfo = DockWidgetPluginGuiInfo.new(
Enum.InitialDockState.Float, -- Le widget sera initialisé dans un panneau flottant
true, -- Le widget sera initialement activé
false, -- Ne pas remplacer l'état activé précédent
200, -- Largeur par défaut de la fenêtre flottante
300, -- Hauteur par défaut de la fenêtre flottante
150, -- Largeur minimale de la fenêtre flottante (optionnel)
150 -- Hauteur minimale de la fenêtre flottante (optionnel)
)
-- Créer une nouvelle interface utilisateur de widget
local testWidget = plugin:CreateDockWidgetPluginGuiAsync("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 = "Cliquez Moi"
testButton.Parent = testWidgetCreatePluginAction
Retours
Échantillons de code
Créer un PluginAction
local pluginAction = plugin:CreatePluginAction(
"HelloWorldAction",
"Bonjour le monde",
"Affiche un 'Hello world!'",
"rbxasset://textures/sparkle.png",
true
)
pluginAction.Name = "Action de test"
local function actionTriggered()
print("Hello world!")
end
pluginAction.Triggered:Connect(actionTriggered)CreatePluginMenu
Retours
Échantillons de code
Création d'un PluginMenu et d'une PluginMenuAction
-- Ce code peut être collé dans la barre de commande, mais seulement une fois
local pluginMenu = plugin:CreatePluginMenu(math.random(), "Menu de Test")
pluginMenu.Name = "Menu de Test"
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 = "Sous 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("Action Sélectionnée:", selectedAction.Text, "avec ActionId:", selectedAction.ActionId)
else
print("L'utilisateur n'a pas sélectionné d'action!")
end
end
end
toggle.Changed:Connect(onToggled)CreateToolbar
Paramètres
Retours
Échantillons de code
Plugin:CréerBarreOutils
plugin:CreateToolbar("ExempleBarreOutils")Deactivate
Plugin:Deactivate():()
Retours
()
GetMouse
Retours
Échantillons de code
Plugin:GetMouse
local mouse = plugin:GetMouse()
local function button1Down()
print("Bouton 1 enfoncé depuis PluginMouse")
end
mouse.Button1Down:Connect(button1Down)GetSelectedRibbonTool
Retours
Échantillons de code
Plugin:GetSelectedRibbonTool
plugin:SelectRibbonTool(Enum.RibbonTool.Move, UDim2.new())
task.wait() -- attendre la prochaine image
local selectedRibbonTool = plugin:GetSelectedRibbonTool()
print("L'outil RibbonTool sélectionné est", selectedRibbonTool)GetSetting
Paramètres
Retours
Variant
Échantillons de code
Plugin:GetSetting
local RAN_BEFORE_KEY = "RanBefore"
local didRunBefore = plugin:GetSetting(RAN_BEFORE_KEY)
if didRunBefore then
print("Bienvenue de retour !")
else
plugin:SetSetting(RAN_BEFORE_KEY, true)
print("Bienvenue ! Merci d'avoir installé ce plugin !")
endGetStudioUserId
ImportFbxAnimation
ImportFbxAnimationAsync
ImportFbxRig
ImportFbxRigAsync
Negate
Plugin:Negate(objects:Instances):Instances
Paramètres
objects:Instances |
Retours
Instances
OpenScript
OpenWikiPage
PromptForExistingAssetId
PromptForExistingAssetIdAsync
PromptSaveSelection
PromptSaveSelectionAsync
SaveSelectedToRoblox
Plugin:SaveSelectedToRoblox():()
Retours
()
SelectRibbonTool
Paramètres
Retours
()
Separate
Plugin:Separate(objects:Instances):Instances
Paramètres
objects:Instances |
Retours
Instances
SetSetting
Paramètres
value:Variant |
Retours
()
Échantillons de code
Plugin:GetSetting et Plugin:SetSetting
local RAN_BEFORE_KEY = "RunBefore"
local hasRunBefore = plugin:GetSetting(RAN_BEFORE_KEY)
if hasRunBefore then
print("Bienvenue à nouveau !")
else
print("Merci d'avoir installé ce plugin !")
plugin:SetSetting(RAN_BEFORE_KEY, true)
endStartDrag
Paramètres
Retours
()
Échantillons de code
Plugin Glisser-Déposer
assert(plugin, "Ce script doit être exécuté en tant que plugin du Studio")
local widgetInfo = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 300, 200)
local dragSourceWidget = plugin:CreateDockWidgetPluginGuiAsync("Source de glisser", widgetInfo)
dragSourceWidget.Title = "Source de glisser"
local textBox = Instance.new("TextBox")
textBox.Parent = dragSourceWidget
textBox.Size = UDim2.new(1, 0, 0, 32)
textBox.Text = "Bonjour, glissements de plugin"
local dragButton = Instance.new("TextButton")
dragButton.Size = UDim2.new(1, 0, 1, -32)
dragButton.Position = UDim2.new(0, 0, 0, 32)
dragButton.Text = "Modifiez le texte ci-dessus, puis commencez à glisser ici"
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)
-- Ce widget recevra les dépôts
local dragTargetWidget = plugin:CreateDockWidgetPluginGuiAsync("Cible de dépôt", widgetInfo)
dragTargetWidget.Title = "Cible de dépôt"
-- Ce TextLabel affichera ce qui a été déposé
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.Text = "Déposez ici..."
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)Événements