PluginGui
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
PluginGui ist eine abstrakte Klasse für GUI, die die Anzeige von GuiObjects in verschiedenen Roblox Studio-Wer widgets erlaubt. Derzeit gibt es nur die verfügbare PluginGui-Typ ist DockWidgetPluginGui, aber es könnte mehr in der Zukunft geben!
Zusammenfassung
Eigenschaften
Der Titel, der über dem Inhalt des PluginGui .
Schaltet die Sichtbarkeit von diesem LayerCollector um.
Bestimmt, ob der LayerCollector zurückgesetzt wird (selbst gelöscht und in den Spieler:in's PlayerGui klont), jedes Mal, wenn der Charakter des Spieler:inrespawns.
Steuert, wie GuiObject.ZIndex auf allen Nachkommen dieses LayerCollector agiert.
Beschreibt die tatsächliche Bildschirmposition eines UI-Elements in Pixeln.
Beschreibt die tatsächliche Bildschirmdrehung eines UI-Elements, in Grad.
Beschreibt die tatsächliche Bildschirmgröße eines UI-Elements in Pixel.
Wenn auf wahr gesetzt, wird die Lokalisierung auf diesen GuiBase2d und seinen Nachkommen angewendet.
Eine Verweisung auf eine LocalizationTable , die verwendet wird, um automatisierte Lokalisierung auf diesen GuiBase2d und seinen Nachkommen anzuwenden.
Benutzerdefiniert das Verhalten der Gamepad-Auswahl in Richtung unten.
Anpassen Sie das Gamepad-Auswahlverhalten in der linken Richtung.
Benutzerdefiniert das Verhalten der Spielpad-Auswahl in die richtige Richtung.
Benutzerdefiniert das Verhalten der Gamepad-Auswahl in Richtung nach oben.
Erlaubt die Anpassung der Gamepad-Auswahl.
Methoden
Bindet eine Funktion an die PluginGui Schaltfläche, die das Standardverhalten überschreibt.
Zurückgibt die Position der Maus im Verhältnis zu der PluginGUI.
Ereignisse
Feuert, wenn der Benutzer seine Maus loslässt, während er mit einem PluginGui über einen Drag-Operation beginnend, die von Plugin:StartDrag() .
Feuert, wenn die Maus des Benutzers während einer Drag-Operation, die von Plugin:StartDrag() gestartet wurde, in ein PluginGui eintreten.
Feuert, wenn die Maus des Benutzers während einer Drag-Operation, die von Plugin:StartDrag() gestartet wurde, das PluginGui verlässt.
Feuert, wenn die Maus des Benutzers innerhalb eines PluginGui während einer Drag-Operation, die von Plugin:StartDrag() gestartet wurde, bewegt.
Feuert, wenn der Benutzer aufhört, mit dem Fenster des PluginGUI zu interagieren.
Feuert, wenn der Benutzer mit dem Fenster der PluginGUI beginnt zu interagieren.
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
Feuert, wenn die Gamepad-Auswahl bewegt wird, geht oder sich in der verbundenen GuiBase2d oder einem Nachfolge GuiObjekten ändert.
Eigenschaften
Methoden
BindToClose
Diese Funktion bindet eine Funktion an den PluginGui Schaltfläche, die das Standardverhalten überschreibt.
Standardmäßig, wenn der Benutzer auf die Schaltfläche 'x' in der oberen rechten Ecke des PluginGui klickt, wird die Eigenschaft Enabled auf false gesetzt, wodurch das Fenster geschlossen wird. Wenn eine benutzerdefinierte Funktion mit BindToClose gebunden wird, wird dieses Verhalten überschrieben
Da das Standard-Schließverhalten durch diese Funktion überschrieben wird, musst du das PluginGui manuell schließen, indem du PluginGui.Enabled auf false konfigurierst. Zum Beispiel, in dem folgenden Snippet müssen Benutzer auf eine Bestätigungsschaltfläche klicken, um die grafische Benutzeroberflächezu schließen:
local closing = false
pluginGui:BindToClose(function()
-- stellen sie sicher, dass wir keine schaltfläche bereits gemacht haben
if closing then
return
end
closing = true
-- erstellen-bestätigung-button
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
-- auf klickenhören
confirmButton.Activated:Connect(function()
-- schließe die gui
pluginGui.Enabled = false
-- entfernen sie die bestätigungsschaltfläche
confirmButton:Destroy()
end)
end)
Sie können BindToClose mit keinem Argument auf 'unbind' aufrufen und zum Standardverhalten oben zurückkehren. Zum Beispiel:
pluginGui:BindToClose()
Siehe auch:
- Plugin:CreateDockWidgetPluginGui() um ein PluginGui zu erstellen
- DataModel:BindToClose() , die verwendet werden kann, um eine Funktion am Spielende zu binden und mit dieser Funktion nicht verwechselt werden sollte
Parameter
Die Funktion, der der Schaltfläche "Schließen" zugewiesen ist. Wenn keine Funktion angegeben wird, wird jede vorher angegebene Funktion aufgehoben.
Rückgaben
GetRelativeMousePosition
GetRelativeMousePosition gibt die Position der Maus im Verhältnis zu der oberen linken Ecke des PluginGui zurück. Der zurückgegebene Wert ändert sich nur, wenn eine Maus-Eingabe auf dem PluginGui beginnt, oder wenn die Maus derzeit über dem Fenster schwebt.
Rückgaben
Die Bildschirmposition der Maus in Bezug auf die PluginGUI in Pixel.
Code-Beispiele
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()
Ereignisse
PluginDragDropped
PluginDragDropped startet, wenn der Benutzer seine Maus über ein PluginGui während einer Drag-Operation, die von Plugin:StartDrag() gestartet wurde, zieht.
Siehe auch:
Parameter
Code-Beispiele
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 startet, wenn die Maus des Benutzers die PluginGui während einer Drag-Operation, die von Plugin:StartDrag() gestartet wurde, betritt.
Dieses Ereignis ist nützlich, um eine "Drop Here"-Benutzeroberfläche auf PluginGuis anzuzeigen, auf der ein Drag-Operation angewendet werden kann. Solche eine Benutzeroberfläche sollte ausgeblendet werden, wenn entweder PluginDragLeft oder PluginDragDropped initiierenaktiviert sind.
Siehe auch:
Parameter
Eine Kopie der ursprünglichen Daten an Class.Plugin:StartDrag() .
Code-Beispiele
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 wird ausgelöst, wenn die Maus des Benutzers eine PluginGui während einer Drag-Operation, die von Plugin:StartDrag() gestartet wurde, verlässt.
Dieses Ereignis und PluginDragDropped sind nützlich, um eine "Drop Here"-Benutzeroberfläche auf PluginGuis zu verbergen, bei der ein Drag-Operation fallen kann. Solche Benutzeroberflächen sollten angezeigt werden, wenn entweder PluginDragEntered feuert.
Siehe auch:
Parameter
Eine Kopie der ursprünglichen Daten an Class.Plugin:StartDrag() .
Code-Beispiele
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 feuert ab, wenn die Maus des Benutzers innerhalb einer PluginGui -Drag-Operation, die von Plugin:StartDrag() gestartet wurde, bewegt wird.
Siehe auch:
Parameter
WindowFocusReleased
WindowFocusRelease feuert sofort ab, wenn der Benutzer aufhört, mit dem Fenster von PluginGui zu interagieren, normalerweise indem er auf etwas nicht im Fenster klickt. Dies funktioniert ähnlich wie das entsprechenden UserInputService.WindowFocusReleased -Ereignis.
Wenn der Fokus auf ein anderes PluginGui zieht, während der Benutzer diesen PluginGui in Fokus hatte, dann wird dieses Ereignis ausgelöst, bevor das andere WindowFocused -Ereignis. Wenn das Hauptspielfenster in Fokus gesetzt wird, wird dieses Ereignis ausgelöst, nach dem
Code-Beispiele
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 feuert sofort ab, wenn der Benutzer mit dem Fenster von PluginGui interagiert, normalerweise indem er darauf klickt. Dies funktioniert ähnlich wie das entsprechend namensgebene UserInputService.WindowFocused -Ereignis. Es feuert vor den ähnlich namensgebenden GuiObject.InputBegan -Ereignissen ab.
Wenn ein weiterer PluginGui in den Fokus und der Benutzer diesen PluginGui fokussiert, wird dieses Ereignis nach dem Ereignis WindowFocusReleased des anderen ausgelöst. Wenn das Hauptspielfenster in Fokus war, wird dieses Ereignis nach 1> Class.UserInputService.WindowFocusRelease
Code-Beispiele
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)