PluginGui
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
PluginGui est une classe abstraite pour les interfaces graphiques qui permettent l'affichage de GuiObjects dans divers widgets Roblox Studio. Aujourd'hui, le seul type de PluginGui disponible est DockWidgetPluginGui, mais il peut y en avoir plus dans l'avenir!
Résumé
Propriétés
Titre qui est affiché au-dessus du contenu du PluginGui .
Bascule la visibilité de ce LayerCollector.
Détermine si le LayerCollector réinitialise (se supprime et se clone dans le joueur's PlayerGui ) chaque fois que le personnage du joueur réapparaît.
Contrôle la façon dont GuiObject.ZIndex se comporte sur tous les descendants de ce LayerCollector .
Décrivez la position d'écran réelle d'un élément UI, en pixels.
Décrivez la rotation de l'écran réelle d'un élément UI, en degrés.
Décrivez la taille réelle de l'interface utilisateur, en pixels.
Lorsqu'il est réglé sur vrai, la localisation sera appliquée à ce GuiBase2d et à ses descendants.
Une référence à un LocalizationTable pour être utilisé pour appliquer la localisation automatisée à ce GuiBase2d et à ses descendants.
Personnalise le comportement de sélection du gamepad dans la direction vers le bas.
Personnalise le comportement de sélection du gamepad dans la direction de gauche.
Personnalise le comportement de sélection du gamepad dans la bonne direction.
Personnalise le comportement de sélection du gamepad dans la direction vers le haut.
Permet la personnalisation de la sélection du gamepad.
Méthodes
Liaison d'une fonction à l' bouton de fermeture, PluginGui , qui écrase le comportement par défaut.
Renvoie la position de la souris par rapport à la PluginGui.
Évènements
Se déclenche lorsque l'utilisateur relâche sa souris lorsqu'il passe le curseur sur un PluginGui pendant une opération de déplacement commencée par Plugin:StartDrag() .
Se déclenche lorsque la souris de l'utilisateur entre dans un PluginGui pendant une opération de拖动 commencée par Plugin:StartDrag() .
Se déclenche lorsque la souris de l'utilisateur quitte un PluginGui pendant une opération de拖动 commencée par Plugin:StartDrag() .
Se déclenche lorsque la souris de l'utilisateur se déplace dans un PluginGui pendant une opération de拖动 commencée par Plugin:StartDrag() .
Se déclenche lorsque l'utilisateur arrête d'interagir avec la fenêtre du PluginGui.
Se déclenche lorsque l'utilisateur commence à interagir avec la fenêtre du PluginGui.
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
Se déclenche lorsque la sélection du gamepad se déplace, quitte ou change dans la GuiBase2d ou tout descendant GuiObjects connecté.
Propriétés
Méthodes
BindToClose
Cette fonction lie une fonction à un bouton de fermeture PluginGui, en remplaçant le comportement par défaut.
Par défaut, lorsque l'utilisateur clique sur le bouton 'x' dans le coin supérieur droit de la PluginGui la propriété Enabled est réglée sur false, ce qui ferme la fenêtre. Lorsqu'une fonction personnalisée est liée à BindToClose, ce comportement est écrasé, ce qui vous permet de vérifier si l'
Comme le comportement de fermeture par défaut est écrasé par cette fonction, vous devrez configurer le PluginGui pour fermer manuellement en définissant PluginGui.Enabled à false. Par exemple, dans le snippet ci-dessous, les utilisateurs sont requis de cliquer sur un bouton de confirmation pour fermer la interface utilisateur graphique:
local closing = false
pluginGui:BindToClose(function()
-- assurez-vous que nous n'avons pas déjà créé un bouton
if closing then
return
end
closing = true
-- bouton de confirmation de création
local confirmButton = Instance.new("TextButton")
confirmButton.AnchorPoint = Vector2.new(0.5, 0.5)
confirmButton.Size = UDim2.new(0.5, 0, 0.5, 0)
confirmButton.Position = UDim2.new(0.5, 0, 0.5, 0)
confirmButton.BackgroundColor3 = Color3.new(1, 0, 0)
confirmButton.Text = "Close?"
confirmButton.Parent = pluginGui
-- écoutez pour cliquer
confirmButton.Activated:Connect(function()
-- fermer la gui
pluginGui.Enabled = false
-- supprimer bouton de confirmation
confirmButton:Destroy()
end)
end)
Vous pouvez appeler BindToClose sans argument pour « unbind » et revenir au comportement par défaut décrit ci-dessus. Par exemple :
pluginGui:BindToClose()
Voir aussi :
- Plugin:CreateDockWidgetPluginGui() pour créer un PluginGui
- DataModel:BindToClose() , qui peut être utilisé pour lier une fonction à la fin du jeu et ne doit pas être confondu avec cette fonction
Paramètres
La fonction à laquelle le bouton de fermeture doit être lié. Si aucune fonction n'est spécifiée, alors toute fonction précédemment spécifiée sera désactivée.
Retours
GetRelativeMousePosition
GetRelativeMousePosition renvoie la position de la souris par rapport au coin supérieur gauche de la PluginGui. La valeur renvoyée change seulement si une entrée de souris a commencé sur le PluginGui, ou si la souris est actuellement sur la fenêtre.
Retours
La position de l'écran par rapport à la GUI du plugin en pixels.
Échantillons de code
local RunService = game:GetService("RunService")
local widgetInfo = DockWidgetPluginGuiInfo.new(
Enum.InitialDockState.Float,
true,
false, -- Enabled state, override
200,
300, -- Size
150,
150 -- Minimum size
)
local testWidget = plugin:CreateDockWidgetPluginGui("TestWidget", widgetInfo)
function update()
local v2 = testWidget:GetRelativeMousePosition()
testWidget.Title = ("(%d, %d)"):format(v2.x, v2.y)
end
RunService.Stepped:Connect(update)
update()
Évènements
PluginDragDropped
PluginDragDropped se déclenche lorsque l'utilisateur relâche sa souris sur un PluginGui pendant une opération de déplacement commencée par Plugin:StartDrag().
Voir aussi :
Paramètres
Échantillons de code
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)
PluginDragEntered
PluginDragEntered se déclenche lorsque la souris de l'utilisateur entre dans le PluginGui pendant une opération de déplacement commencée par Plugin:StartDrag().
Cet événement est utile pour afficher une interface utilisateur « Drop Here » sur PluginGuis où une opération de déplacement peut être déposée. Une telle interface devrait être cachée lorsque l'un des PluginDragLeft ou PluginDragDropped lanceren cours d'exécution.
Voir aussi :
Paramètres
Une copie des données initialement envoyées à Plugin:StartDrag() .
Échantillons de code
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)
PluginDragLeft
PluginDragLeft se déclenche lorsque la souris de l'utilisateur quitte un PluginGui pendant une opération de déplacement commencée par Plugin:StartDrag().
Cet événement et PluginDragDropped sont utiles pour cacher une interface "Drop Here" sur PluginGuis où une opération de déplacement peut être lâché. Une telle interface devrait être affichée lorsque l'un des PluginDragEntered lance un feu.
Voir aussi :
Paramètres
Une copie des données initialement envoyées à Plugin:StartDrag() .
Échantillons de code
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)
PluginDragMoved
PluginDragMoved se déclenche lorsque la souris de l'utilisateur se déplace dans un PluginGui pendant une opération de déplacement de drag commencée par Plugin:StartDrag() .
Voir aussi :
Paramètres
WindowFocusReleased
WindowFocusReleaseD se déclenche immédiatement lorsque l'utilisateur arrête d'interagir avec la fenêtre du plugin, généralement en cliquant sur quelque chose qui n'est pas dans la fenêtre. Cela fonctionne de la même façon que l'événement UserInputService.WindowFocusReleased similaire.
Si la mise en évidence se déplace vers un autre PluginGui pendant que l'utilisateur avait ce PluginGui en évidence, alors cet événement se déclenche avant l'événement WindowFocused de l'autre. Cependant, si la fenêtre de jeu principale est mise en évidence, cet événement se déclenche après 2>Class.UserInputService.WindowFocus
Échantillons de code
local info = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 200, 50, 1, 1)
local widget = plugin:CreateDockWidgetPluginGui("TestWidget", info)
local function onFocusReleased()
widget.Title = "I'm not in focus :("
end
local function onFocused()
widget.Title = "I'm in focus :D"
end
widget.WindowFocusReleased:Connect(onFocusReleased)
widget.WindowFocused:Connect(onFocused)
WindowFocused
WindowFocused fonctionne immédiatement lorsque l'utilisateur commence à interagir avec la fenêtre du PluginGui, généralement en cliquant dessus. Cela fonctionne de la même façon que l'événement UserInputService.WindowFocused similairement nommé. Il s'exécute avant tout événement GuiObject.InputBegan lié aux boutons de la souris.
Si un autre PluginGui est en focus et que l'utilisateur fait en sorte que ce PluginGui, alors cet événement se déclenche après l'événement WindowFocusReleased de l'autre. Cependant, si la fenêtre de jeu principale était en focus, cet événement se déclenche après l'événement 1> Class.UserInputService.WindowFocusRelease
Échantillons de code
local info = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 200, 50, 1, 1)
local widget = plugin:CreateDockWidgetPluginGui("TestWidget", info)
local function onFocusReleased()
widget.Title = "I'm not in focus :("
end
local function onFocused()
widget.Title = "I'm in focus :D"
end
widget.WindowFocusReleased:Connect(onFocusReleased)
widget.WindowFocused:Connect(onFocused)