PluginGui
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
PluginGui es una clase abstracta para GUI que permite la pantalla de GuiObjects en varios widgets de Roblox Studio. A partir de ahora, el único tipo de PluginGui disponible es DockWidgetPluginGui, pero puede haber más en el futuro!
Resumen
Propiedades
El título que se muestra por encima del contenido del PluginGui .
Alterna la visibilidad de este LayerCollector .
Determina si el LayerCollector se reinicia (se elimina a sí mismo y se clona en el jugador's PlayerGui ) cada vez que el personaje del jugador reaparece.
Controla cómo se comporta GuiObject.ZIndex en todos los descendientes de este LayerCollector .
Describe la posición de pantalla actual de un elemento de UI, en píxeles.
Describe la rotación de pantalla actual de un elemento de UI, en grados.
Describe el tamaño de pantalla actual de un elemento de UI, en píxeles.
Cuando esté configurado como verdadero, la localización se aplicará a este GuiBase2d y sus descendientes.
Una referencia a un LocalizationTable para ser usado para aplicar la localización automatizada a este GuiBase2d y sus descendientes.
Personaliza el comportamiento de la selección del gamepad en la dirección de abajo.
Personaliza el comportamiento de la selección del gamepad en la dirección de la izquierda.
Personaliza el comportamiento de la selección del gamepad en la dirección correcta.
Personaliza el comportamiento de la selección del gamepad en la dirección de arriba.
Permite la personalización del movimiento de la plataforma de juego.
Métodos
Vincula una función a la PluginGui botón de cierre, sobrescribiendo el comportamiento predeterminado.
Devuelve la posición del mouse con respecto a la interfaz de usuario.
Eventos
Se activa cuando el usuario suelta el mouse cuando el usuario pasa el cursor sobre un PluginGui durante una operación de arrastre iniciada por Plugin:StartDrag() .
Se activa cuando el mouse del usuario ingresa a un PluginGui durante una operación de arrastre iniciada por Plugin:StartDrag() .
Se activa cuando el mouse del usuario deja un PluginGui durante una operación de arrastre iniciada por Plugin:StartDrag() .
Se activa cuando el mouse del usuario se mueve dentro de un PluginGui durante una operación de arrastre iniciada por Plugin:StartDrag() .
Se activa cuando el usuario deja de interactuar con la ventana de la PluginGui.
Se activa cuando el usuario comienza a interactuar con la ventana de la PluginGui.
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
Se activa cuando la selección del gamepad se mueve, se va o cambia dentro de la GuiBase2d conectada o cualquier descendiente de GuiObjetos.
Propiedades
Métodos
BindToClose
Esta función vincula una función a PluginGui botón de cierre, sobrescribiendo el comportamiento predeterminado.
Por defecto, cuando el usuario hace clic en el botón 'x' en la esquina superior derecha de la PluginGui la propiedad Enabled está configurada como falsa , cerrando la ventana. Cuando se enlaza una función personalizada usando BindToClose este comportamiento se overwrite, permitiéndote ver si el usuario realmente quiere
Dado que el comportamiento de cierre predeterminado está sobrescrito por esta función, deberás configurar el PluginGui para cerrar manualmente estableciendo PluginGui.Enabled a falso . Por ejemplo, en el siguiente ejemplo, los usuarios deben hacer clic en un botón de confirmación para cerrar la Interfaz gráfica (o GUI):
local closing = false
pluginGui:BindToClose(function()
-- asegúrese de que no hayamos ya hecho un botón
if closing then
return
end
closing = true
-- crear botón de confirmación
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
-- escuchar por hcer clic
confirmButton.Activated:Connect(function()
-- cerrar el gui
pluginGui.Enabled = false
-- eliminar botón de confirmación
confirmButton:Destroy()
end)
end)
Puede llamar BindToClose sin argumento para 'unbindear' y revertir al comportamiento predeterminado descrito anteriormente. Por ejemplo:
pluginGui:BindToClose()
Véase también:
- Plugin:CreateDockWidgetPluginGui() para crear un PluginGui
- DataModel:BindToClose() , que se puede usar para vincular una función a la terminación del juego y no debe confundirse con esta función
Parámetros
La función para vincular el botón de cierre. Si no se especifica ninguna función, entonces cualquier función anteriormente especificada se desvinculará.
Devuelve
GetRelativeMousePosition
GetRelativeMousePosition返回鼠标相对于左上角的位置。 PluginGui 的返回值只有在鼠标输入开始在PluginGui上,或者当前鼠标悬停在窗口上时才会更改。
Devuelve
La posición de la pantalla del mouse en relación con el PluginGui en píxeles.
Muestras de código
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()
Eventos
PluginDragDropped
PluginDragDropped fue activado cuando el usuario liberó su mouse sobre un PluginGui durante una operación de arrastre iniciada por Plugin:StartDrag() .
Véase también:
Parámetros
Muestras de código
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 dispara cuando el mouse del usuario ingresa al PluginGui durante una operación de arrastre iniciada por Plugin:StartDrag() .
Este evento es útil para mostrar una interfaz de usuario "Drop Here" en PluginGuis donde se puede soltar una operación de arrastre. Tal interfaz de usuario debería estar oculta cuando se ejecuta PluginDragLeft o PluginDragDropped .
Véase también:
Parámetros
Una copia de los datos originalmente enviados a Plugin:StartDrag() .
Muestras de código
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 activa cuando el mouse del usuario deja un PluginGui durante una operación de arrastre iniciada por Plugin:StartDrag() .
Este evento y PluginDragDropped son útiles para ocultar una interfaz de usuario "Drop Here" en PluginGuis donde se puede soltar una operación de arrastre. Tal interfaz de usuario debería mostrarse cuando se activa PluginDragEntered .
Véase también:
Parámetros
Una copia de los datos originalmente enviados a Plugin:StartDrag() .
Muestras de código
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 fue activado cuando el mouse del usuario se movió dentro de un PluginGui durante una operación de arrastre iniciada por Plugin:StartDrag() .
Véase también:
Parámetros
WindowFocusReleased
WindowFocusReleaseD dispara inmediatamente cuando el usuario deja de interactuar con la ventana del PluginGui, generalmente haciendo clic en algo que no está en la ventana. Esto funciona de manera similar al evento de UserInputService.WindowFocusReleased de nombre similar.
Si el enfoque se mueve a otro <a href="/reference/engine/datums"> Class.PluginGui</a> mientras el usuario tenía este PluginGui en el enfoque, entonces este evento se activa antes del evento <a href="/reference/engine/datums"> Class.PluginGui.WindowFocused|WindowFocused</a> del otro. Sin embargo, si la ventana de juego principal se pone en el enfoque, este evento se activa después de <a href="/reference/engine
Muestras de código
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 fue inmediatamente cuando el usuario comenzó a interactuar con la ventana del PluginGui, generalmente haciendo clic en ella. Esto funciona de manera similar al evento UserInputService.WindowFocused que lleva el mismo nombre. Se inicia antes de cualquier evento GuiObject.InputBegan relacionado con botones del mouse.
Si otro PluginGui está en el enfoque y el usuario enfoque este PluginGui, entonces este evento se activa después del evento WindowFocusReleased del otro. Sin embargo, si la ventana de juego principal estuviera en el enfoque, este evento se activa después del evento después 1>de1> 4>de
Muestras de código
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)