PluginGui
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
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!
Resumo
Propriedades
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 .
Descreve a posição real da tela de um elemento da interface, em pixels.
Descreve a rotação de tela real de um elemento da interface, em graus.
Descreve o tamanho real da tela de um elemento da interface, em pixels.
Quando definido como verdadeiro, a localização será aplicada a este GuiBase2d e aos seus descendentes.
Uma referência a um LocalizationTable para ser usado para aplicar localização automatizada a este GuiBase2d e seus descendentes.
Personaliza o comportamento de seleção do gamepad na direção de baixo.
Personaliza o comportamento de seleção do gamepad na direção esquerda.
Personaliza o comportamento de seleção do gamepad na direção certa.
Personaliza o comportamento de seleção do gamepad na direção de cima.
Permite personalizar o movimento da almofada de jogo.
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
Ativado quando a seleção do gamepad se move para, sai ou muda dentro da GuiBase2d conectada ou de qualquer descendente GuiObjects.
Propriedades
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á.
Devolução
GetRelativeMousePosition
GetRelativeMousePosition返回鼠标相对于左上角的位置。 PluginGui 的返回值只有在鼠标输入开始在PluginGui上,或者当前鼠标悬停在窗口上时才会更改。
Devolução
La posición de la pantalla del mouse en relación con el PluginGui en píxeles.
Amostras 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
Amostras 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() .
Amostras 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() .
Amostras 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
Amostras 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
Amostras 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)