PluginGui
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
PluginGui è una classe抽atta per GUI che consente la visualizzazione di GuiObjects in varie widget Roblox Studio. Al momento attuale, l'unico tipo disponibile di PluginGui è DockWidgetPluginGui , ma potrebbe esserci di più in futuro!
Sommario
Proprietà
Il titolo che viene visualizzato sopra i contenuti del PluginGui .
Attiva/disattiva la visibilità di questo LayerCollector .
Determina se il LayerCollector resets (deletes itself and re-clones into the Giocatore's PlayerGui ) ogni volta che il personaggio del Giocatorerespawna.
Controlla il modo in cui GuiObject.ZIndex si comporta su tutti i discendenti di questo LayerCollector .
Descrive la posizione reale dello schermo di un elemento UI, in pixel.
Descrive la rotazione dell'interfaccia utente reale, in gradi.
Descrive la dimensione reale dello schermo di un elemento UI, in pixel.
Quando impostato su true, la localizzazione sarà applicata a questo GuiBase2d e ai suoi discendenti.
Un riferimento a un LocalizationTable per essere utilizzato per applicare la localizzazione automatica a questo GuiBase2d e ai suoi discendenti.
Personalizza il comportamento della selezione del gamepad nella direzione in cui si muove verso il basso.
Personalizza il comportamento di selezione del gamepad nella direzione di sinistra.
Personalizza il comportamento della selezione del gamepad nella direzione giusta.
Personalizza il comportamento della selezione del gamepad nell'area di direzione up.
Consente la personalizzazione della selezione del gamepad.
Metodi
Legge una funzione alla PluginGui pulsante di chiusura, sovrascrivendo il comportamento predefinito.
Restituisce la posizione del mouse rispetto alla Guida Plugin.
Eventi
Si attiva quando l'utente rilascia il mouse quando si passa il mouse su un PluginGui durante un'operazione di trascinamento iniziata da Plugin:StartDrag() .
Si attiva quando il mouse dell'utente entra in un PluginGui durante un'operazione di trascinamento iniziata da Plugin:StartDrag() .
Si attiva quando il mouse dell'utente lascia un PluginGui durante un'operazione di trascinamento iniziata da Plugin:StartDrag() .
Si attiva quando il mouse dell'utente si muove all'interno di un PluginGui durante un'operazione di trascinamento iniziata da Plugin:StartDrag() .
Si attiva quando l'utente smette di interagire con la finestra della Guida Plugin.
Si attiva quando l'utente inizia ad interagire con la finestra della Guida Plugin.
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
Si attiva quando la selezione del gamepad si muove, si lascia o cambia all'interno della GuiBase2d connessa o di qualsiasi altro GuiObjects.
Proprietà
Metodi
BindToClose
Questa funzione lega una funzione al pulsante di chiusura PluginGui, sovrascrivendo il comportamento predefinito.
Per impostazione predefinita, quando l'utente fa clic sul pulsante 'x' nell'angolo in alto a destra di PluginGui la proprietà Enabled è impostata su false , chiudendo la finestra. Quando viene utilizzata una funzione personalizzata usando BindToClose questo comportamento viene sovrascritto, in modo che tu possa controll
Poiché il comportamento di chiusura predefinito è sovrascritto da questa funzione, dovrai configurare il PluginGui per chiudere manualmente impostando PluginGui.Enabled su false . Ad esempio, nel seguente script gli utenti sono richiesti di fare clic su un pulsante conferma per chiudere la GUI or Intefaccia grafica utente:
local closing = false
pluginGui:BindToClose(function()
-- assicurati che non abbiamo già fatto un pulsante
if closing then
return
end
closing = true
-- crea pulsante di conferma
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
-- ascolta per cliccare
confirmButton.Activated:Connect(function()
-- chiudi la gui
pluginGui.Enabled = false
-- rimuovi pulsante conferma
confirmButton:Destroy()
end)
end)
Puoi chiamare BindToClose senza argomento per 'unbind' e tornare al comportamento predefinito descritti sopra. Ad esempio:
pluginGui:BindToClose()
Vedi anche:
- Plugin:CreateDockWidgetPluginGui() per creare un PluginGui
- DataModel:BindToClose() , che può essere utilizzato per associare una funzione alla fine del gioco e non deve essere confuso con questa funzione
Parametri
La funzione per associare il pulsante di chiusura. Se nessuna funzione è specificata, allora qualsiasi funzione precedentemente specificata verrà disattivata.
Restituzioni
GetRelativeMousePosition
GetRelativeMousePosition restituisce la posizione del mouse rispetto all'angolo in alto a sinistra del PluginGui . Il valore restituito cambia solo se un input del mouse inizia sul PluginGui, o se il mouse si trova attualmente sopra la finestra.
Restituzioni
La posizione dello schermo del mouse rispetto al PluginGui in pixel.
Campioni di codice
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()
Eventi
PluginDragDropped
PluginDragDropped viene attivato quando l'utente rilascia il mouse su un PluginGui durante un'operazione di trascinamento iniziata da Plugin:StartDrag() .
Vedi anche:
Parametri
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)
PluginDragEntered
PluginDragEntered fuoriesce quando il mouse dell'utente entra nel PluginGui durante un'operazione di trascinamento iniziata da Plugin:StartDrag() .
Questo evento è utile per mostrare un'interfaccia utente "Drop Here" su PluginGuis in cui un'operazione di trascinamento può essere trascinata. Tale interfaccia utente dovrebbe essere nascosta quando sia PluginDragLeft o PluginDragDropped Lanciare.
Vedi anche:
Parametri
Una copia dei dati originariamente passati a Plugin:StartDrag() .
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)
PluginDragLeft
PluginDragLeft viene attivato quando il mouse dell'utente lascia un PluginGui durante un'operazione di trascinamento iniziata da Plugin:StartDrag() .
Questo evento e PluginDragDropped sono utili per nascondere un'interfaccia utente "Drop Here" su PluginGuis in cui un'operazione di trascinamento può essere rilasciata. Tale interfaccia utente dovrebbe essere mostrata quando si attiva PluginDragEntered .
Vedi anche:
Parametri
Una copia dei dati originariamente passati a Plugin:StartDrag() .
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)
PluginDragMoved
PluginDragMoved fuoriesce quando il mouse dell'utente si muove all'interno di un PluginGui durante un'operazione di trascinamento iniziata da Plugin:StartDrag() .
Vedi anche:
Parametri
WindowFocusReleased
WindowFocusReleaseFocus viene attivato immediatamente quando l'utente smette di interagire con la finestra PluginGui, di solito facendo clic su qualcosa che non è nella finestra. Questo funziona allo stesso modo come l'evento UserInputService.WindowFocusReleased .
Se il focus si sposta su un altro PluginGui mentre l'utente aveva questo PluginGui in focus, allora questo evento si attiva prima dell'evento WindowFocused dell'altro. Tuttavia, se la finestra di gioco principale viene posta in focus, questo evento si attiva dopo dopo 1> Class.UserInputService.WindowFocused
Campioni di codice
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 fires immediately when the user starts interacting with the PluginGui's window, usually by clicking on it. This functions works similarly to the similarly-named UserInputService.WindowFocused event. It fires before any GuiObject.InputBegan events related to mouse buttons.
Se un altro PluginGui è in focus e l'utente focus questo PluginGui, allora questo evento si attiva dopo l'evento WindowFocusReleased dell'altro. Tuttavia, se la finestra di gioco principale era in focus, questo evento si attiva dopo 1> Class.UserInputService.WindowFocusRelease
Campioni di codice
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)