GuiObject
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
GuiObject es una clase abstracta (mucho como BasePart ) para un objeto de interfaz de usuario de 2D. Def
Para manipular la disposición de los objetos GUI de manera especial, puede usar una estructura de diseño como lista / flex o cuadrícula, y puede estilarlos más allá de sus propiedades de núcleo a través de modificadores de apariencia .
Aunque es posible detectar los eventos de botón de cualquier objeto de GUI que se usan para detectar clics / presiones en cualquier objeto de GUI con el InputBegan y InputEnded, solo ImageButton y
Resumo
Propriedades
Determina si este elemento de la interfaz de usuario acepta la entrada.
Determina el punto de origen de un GuiObject , relativo a su tamaño absoluto.
Determina si se produce el escalado en función del contenido de los hijos.
Determina el color de fondo de GuiObject
Determina la transparencia de la capa de fondo y el borde de GuiObject
Determina el color de la frontera de GuiObject .
Determina de qué manera se coloca el límite de GuiObject en relación con sus dimensiones.
Determina el ancho de píxel de la frontera GuiObject .
Determina si el descendiente GuiObjects fuera de los límites de un elemento GUI padre debe Renderizar.
Determina si el mouse del jugador está siendo presionado activamente en el GuiObject o no.
Determina si el GuiButton se puede interactuar con o no, o si el GuiState del GuiObject está cambiando o no.
Controla el orden de clasificación del GuiObject cuando se usa con un UIGridStyleLayout .
Establece el GuiObject que se seleccionará cuando el seleccionador de plataforma de juego se mueva hacia abajo.
Establece el GuiObject que se seleccionará cuando el seleccionador de plataforma se mueva a la izquierda.
Establece el GuiObject que se seleccionará cuando el seleccionador de plataforma de juegos se mueva a la derecha.
Establece el GuiObject que se seleccionará cuando el seleccionador de plataforma de juego se mueva hacia arriba.
Determina la posición de píxeles y escalares de GuiObject .
Determina el número de grados en los que se gira el GuiObject .
Determine si el GUI puede ser seleccionado por un controlador para juego.
Sobrecarga el adorno de selección predeterminado utilizado para las plataformas de juegos.
El orden de GuiObjects seleccionado por la interfaz de usuario del gamepad.
Determina el tamaño de píxeles y escalares del GuiObject .
Establece los ejes Size en los que se basará el GuiObject relativos al tamaño de su padre.
Una propiedad mixta de BackgroundTransparency y TextTransparency .
Determina si el GuiObject y sus descendientes serán renderizados.
Determina el orden en que se renderiza un GuiObject en relación con los demás.
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
- TweenPosition(endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Mueve con suavidad un GUI a un nuevo UDim2 .
- TweenSize(endSize : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Escala con suavidad un GUI a un nuevo UDim2 .
- TweenSizeAndPosition(endSize : UDim2,endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Mueve con suavidad una GUI a un nuevo tamaño y posición.
Eventos
Se ha disparado cuando un usuario comienza a interactuar a través de un dispositivo de interfaz humana-ordenador (botón de ratón, toque para comenzar, botón de teclado, etc).
Se activa cuando un usuario cambia cómo interactúa a través de un dispositivo de interfaz humana-ordenador (botón de ratón, toque para comenzar, botón de teclado, etc).
Se ha disparado cuando un usuario deja de interactuar a través de un dispositivo de interfaz humana-ordenador (botón de ratón, toque para empezar, botón de teclado, etc).
Dispara cuando un usuario mueve su mouse hacia un elemento GUI.
Se activa cuando un usuario mueve el mouse fuera de un elemento de la GUI.
Dispara cuando un usuario mueve el mouse mientras está dentro de un elemento GUI.
Dispara cuando un usuario desplaza su rueda de ratón cuando el ratón está sobre un elemento de GUI.
Se activa cuando un usuario desplaza su rueda de ratón hacia delante cuando el ratón está sobre un elemento de GUI.
Se activa cuando el GuiObject está siendo enfocado con el GamepadSelector.
Se activa cuando el GamepadSelector deja de enfocarse en el GuiObject.
Se activa cuando el jugador comienza, continúa y termina presionando el elemento de la interfaz de usuario.
- TouchPan(touchPositions : Array,totalTranslation : Vector2,velocity : Vector2,state : Enum.UserInputState):RBXScriptSignal
Dispara cuando el jugador mueve su dedo en el elemento de la interfaz de usuario.
- TouchPinch(touchPositions : Array,scale : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Dispara cuando el jugador realiza un gesto de pinchazo o de tiro usando dos dedos en el elemento de la interfaz de usuario.
- TouchRotate(touchPositions : Array,rotation : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Dispara cuando el jugador realiza un gesto de rotación usando dos dedos en el elemento de la interfaz de usuario.
Se activa cuando el jugador realiza un gesto de desplazamiento en el elemento de la interfaz de usuario.
Se activa cuando el jugador realiza un gesto de toque en el elemento de la interfaz de usuario.
- 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
Active
Esta propiedad determina si este GuiObject sumergirá la entrada en el espacio 3D, como los modelos subyacentes con una clase ClickDetector . En otras palabras, si el jugador intenta hacer clic en el detector con el mouse sobre un elemento de UI activo, la UI bloqueará la entrada de alcanzar el detector.
Para los objetos GuiButton ( ImageButton y TextButton
Amostras de código
-- Place this LocalScript within a TextButton (or ImageButton)
local textButton = script.Parent
textButton.Text = "Click me"
textButton.Active = true
local function onActivated()
-- This acts like a debounce
textButton.Active = false
-- Count backwards from 5
for i = 5, 1, -1 do
textButton.Text = "Time: " .. i
task.wait(1)
end
textButton.Text = "Click me"
textButton.Active = true
end
textButton.Activated:Connect(onActivated)
AnchorPoint
La propiedad AnchorPoint determina el punto de origen de un GuiObject , en relación con su tamaño absoluto. La propiedad determina desde dónde se posiciona el elemento (a través de GuiObject.Position ) y desde dónde se expande el renderizado 1> Class.GuiObject.Size1>.
Vea aquí para los diagramas y detalles ilustrados.
Amostras de código
local guiObject = script.Parent
while true do
-- Top-left
guiObject.AnchorPoint = Vector2.new(0, 0)
guiObject.Position = UDim2.new(0, 0, 0, 0)
task.wait(1)
-- Top
guiObject.AnchorPoint = Vector2.new(0.5, 0)
guiObject.Position = UDim2.new(0.5, 0, 0, 0)
task.wait(1)
-- Top-right
guiObject.AnchorPoint = Vector2.new(1, 0)
guiObject.Position = UDim2.new(1, 0, 0, 0)
task.wait(1)
-- Left
guiObject.AnchorPoint = Vector2.new(0, 0.5)
guiObject.Position = UDim2.new(0, 0, 0.5, 0)
task.wait(1)
-- Dead center
guiObject.AnchorPoint = Vector2.new(0.5, 0.5)
guiObject.Position = UDim2.new(0.5, 0, 0.5, 0)
task.wait(1)
-- Right
guiObject.AnchorPoint = Vector2.new(1, 0.5)
guiObject.Position = UDim2.new(1, 0, 0.5, 0)
task.wait(1)
-- Bottom-left
guiObject.AnchorPoint = Vector2.new(0, 1)
guiObject.Position = UDim2.new(0, 0, 1, 0)
task.wait(1)
-- Bottom
guiObject.AnchorPoint = Vector2.new(0.5, 1)
guiObject.Position = UDim2.new(0.5, 0, 1, 0)
task.wait(1)
-- Bottom-right
guiObject.AnchorPoint = Vector2.new(1, 1)
guiObject.Position = UDim2.new(1, 0, 1, 0)
task.wait(1)
end
AutomaticSize
Esta propiedad se usa para ajustar automáticamente los objetos de la interfaz de usuario padre según el tamaño de sus descendientes. Puedes usar esta propiedad para agregar dinámicamente texto y otros elementos a un objeto de la interfaz de usuario en la edición o la ejecución, y el tamaño se ajustará para ajustar ese contenido.
Cuando AutomaticSize está configurado para un valor de Enum.AutomaticSize a cualquier otra cosa que no sea None, este objeto de interfaz de usuario puede reorganizarse dependiendo de su contenido de hijo.
Para obtener más información sobre cómo usar esta propiedad y cómo funciona, por favor aquí .
Amostras de código
-- Array of text labels/fonts/sizes to output
local labelArray = {
{ text = "Lorem", font = Enum.Font.Creepster, size = 50 },
{ text = "ipsum", font = Enum.Font.IndieFlower, size = 35 },
{ text = "dolor", font = Enum.Font.Antique, size = 55 },
{ text = "sit", font = Enum.Font.SpecialElite, size = 65 },
{ text = "amet", font = Enum.Font.FredokaOne, size = 40 },
}
-- Create an automatically-sized parent frame
local parentFrame = Instance.new("Frame")
parentFrame.AutomaticSize = Enum.AutomaticSize.XY
parentFrame.BackgroundColor3 = Color3.fromRGB(90, 90, 90)
parentFrame.Size = UDim2.fromOffset(25, 100)
parentFrame.Position = UDim2.fromScale(0.1, 0.1)
parentFrame.Parent = script.Parent
-- Add a list layout
local listLayout = Instance.new("UIListLayout")
listLayout.Padding = UDim.new(0, 5)
listLayout.Parent = parentFrame
-- Set rounded corners and padding for visual aesthetics
local roundedCornerParent = Instance.new("UICorner")
roundedCornerParent.Parent = parentFrame
local uiPaddingParent = Instance.new("UIPadding")
uiPaddingParent.PaddingTop = UDim.new(0, 5)
uiPaddingParent.PaddingLeft = UDim.new(0, 5)
uiPaddingParent.PaddingRight = UDim.new(0, 5)
uiPaddingParent.PaddingBottom = UDim.new(0, 5)
uiPaddingParent.Parent = parentFrame
for i = 1, #labelArray do
-- Create an automatically-sized text label from array
local childLabel = Instance.new("TextLabel")
childLabel.AutomaticSize = Enum.AutomaticSize.XY
childLabel.Size = UDim2.fromOffset(75, 15)
childLabel.Text = labelArray[i]["text"]
childLabel.Font = labelArray[i]["font"]
childLabel.TextSize = labelArray[i]["size"]
childLabel.TextColor3 = Color3.new(1, 1, 1)
childLabel.Parent = parentFrame
-- Visual aesthetics
local roundedCorner = Instance.new("UICorner")
roundedCorner.Parent = childLabel
local uiPadding = Instance.new("UIPadding")
uiPadding.PaddingTop = UDim.new(0, 5)
uiPadding.PaddingLeft = UDim.new(0, 5)
uiPadding.PaddingRight = UDim.new(0, 5)
uiPadding.PaddingBottom = UDim.new(0, 5)
uiPadding.Parent = childLabel
task.wait(2)
end
BackgroundColor3
Esta propiedad determina el color de un fondo de GuiObject (el color de relleno). Si su elemento contiene texto, como un TextBox , TextButton o 1> Class.TextLabel1> , asegúrese de que el color de su fondo contraste con el color del texto.
Otra propiedad que determina las propiedades visuales del fondo es GuiObject.BackgroundTransparency ; si esta configurada como 1 , ni el fondo ni la frontera se Renderizar.
También véase BorderColor3 .
Amostras de código
-- Put this code in a LocalScript in a Frame
local frame = script.Parent
while true do
for hue = 0, 255, 4 do
-- HSV = hue, saturation, value
-- If we loop from 0 to 1 repeatedly, we get a rainbow!
frame.BorderColor3 = Color3.fromHSV(hue / 256, 1, 1)
frame.BackgroundColor3 = Color3.fromHSV(hue / 256, 0.5, 0.8)
task.wait()
end
end
BackgroundTransparency
Esta propiedad determina la transparencia del fondo y la frontera del GuiObject ; sin embargo, no determina la transparencia del texto si el GUI es un TextBox, TextButton o 2>Class.Text
Si esta propiedad se establece a 1, tanto el fondo como la frontera no se renderizarán y el fondo de la GUI se hará completamente transparente.
BorderColor3
Determina el color del límite rectangular de GuiObject (también conocido como color de trazo). Esto se separa del objeto's GuiObject.BackgroundColor3 . No podrás ver el límite del objeto si su propiedad GuiObject.BorderSizePixel está configurada como 1> 01> .
Nota que el componente UIStroke permite efectos de bordes más avanzados.
Amostras de código
-- Put me inside some GuiObject, preferrably an ImageButton/TextButton
local button = script.Parent
local function onEnter()
button.BorderSizePixel = 2
button.BorderColor3 = Color3.new(1, 1, 0) -- Yellow
end
local function onLeave()
button.BorderSizePixel = 1
button.BorderColor3 = Color3.new(0, 0, 0) -- Black
end
-- Connect events
button.MouseEnter:Connect(onEnter)
button.MouseLeave:Connect(onLeave)
-- Our default state is "not hovered"
onLeave()
BorderMode
Esta propiedad determina de qué manera se distribuye el límite de la propiedad GuiObject en relación con sus dimensiones usando el índice del mismo nombre, Enum.BorderMode .
Nota que UIStroke puede anular esta propiedad y permitir efectos de bordes más avanzados.
BorderSizePixel
Esta propiedad determina la medida en que se renderiza el contorno de GuiObject en píxeles. Estableciendo esto en 0 desactiva el contorno por completo.
Nota que UIStroke puede anular esta propiedad y permitir efectos de bordes más avanzados.
Amostras de código
-- Put me inside some GuiObject, preferrably an ImageButton/TextButton
local button = script.Parent
local function onEnter()
button.BorderSizePixel = 2
button.BorderColor3 = Color3.new(1, 1, 0) -- Yellow
end
local function onLeave()
button.BorderSizePixel = 1
button.BorderColor3 = Color3.new(0, 0, 0) -- Black
end
-- Connect events
button.MouseEnter:Connect(onEnter)
button.MouseLeave:Connect(onLeave)
-- Our default state is "not hovered"
onLeave()
ClipsDescendants
Esta propiedad determina si el GuiObject clip (haga invisible) cualquier parte de los elementos de GUI descendientes que de otra manera renderizarían fuera de los límites del rectángulo.
Nota que GuiObject.Rotation no es compatible con esta propiedad. Si esta o cualquier otro GUI de ancestral tiene un no-cero GuiObject.Rotation , esta propiedad se ignorará y los elementos de GUI descendientes se renderizarán independientemente del valor de esta propiedad.
Interactable
Determina si el GuiButton se puede interactuar con o no, o si el GuiState del GuiObject está cambiando o no.
En un GuiButton :
- Cuando la configuración de Interactable en el GuiButton establece en false, el 1> Class.GuiButton1> ya no podrá ser presionado o hecho clic, y el 4>
- Cuando la configuración de Interactable en el GuiButton está configurada como true, el 1> Class.GuiButton1> se comportará normalmente de nuevo y el 4> Class.GuiObject.GuiState|GuiState4> se comportará normalmente.
En un GuiObject :
- Cuando la configuración de Interactable en el GuiButton está configurada como false, la configuración de 2> Class.GuiObject.GuiState|GuiState2> se establecerá constantemente en 5> Class.GuiState.NonInteractable|NonInteractable5> .
- Cuando la configuración de Interactable en el GuiButton está configurada como true, la 2>Class.GuiObject.GuiState|GuiState2> se comportará normalmente de nuevo.
LayoutOrder
Esta propiedad controla el orden de clasificación del GuiObject cuando se utiliza una UIGridStyleLayout (como UIListLayout o 2>Class.UIPageLayout2> ) con un 5>Class.UIGridStyleLayout.SortOrder|
GuiObjects están clasificados por orden ascendente donde los valores inferiores tienen prioridad sobre los valores superiores. Los objetos con valores iguales se restablecen a la orden en la que se agregaron.
Si no está seguro de que necesitará agregar un elemento entre dos elementos existentes en el futuro, es una buena práctica usar múltiples de 100 ( 0 , 100 , 1> 2001> , etc.). Esto garantiza una gran cantidad de valores de orden de diseño que puede usar para elementos ordenados en el tiempo.
También vea ZIndex que determina el orden de renderizado del objeto en lugar de ordenar el orden.
NextSelectionDown
Esta propiedad establece el GuiObject seleccionado cuando el usuario mueve el seleccionador de Class.Gui hacia abajo. Si esta propiedad está vacía, mover el Class.Gui hacia abajo no cambiará el Interfaz gráfica (o GUI)seleccionado.
Mover el seleccionador del gamepad hacia abajo establece el GuiService.SelectedObject a este objeto a menos que el GUI no esté Selectable . Nota que esta propiedad se puede configurar para un objeto de Interfaz gráfica (o GUI)incluso si no es Selectable, por lo que debe asegurarse de que el
También vea NextSelectionUp , NextSelectionLeft y NextSelectionRight .
Amostras de código
-- Setup the Gamepad selection grid using the code below
local container = script.Parent:FindFirstChild("Container")
local grid = container:GetChildren()
local rowSize = container:FindFirstChild("UIGridLayout").FillDirectionMaxCells
for _, gui in pairs(grid) do
if gui:IsA("GuiObject") then
local pos = gui.Name
-- Left edge
gui.NextSelectionLeft = container:FindFirstChild(pos - 1)
-- Right edge
gui.NextSelectionRight = container:FindFirstChild(pos + 1)
-- Above
gui.NextSelectionUp = container:FindFirstChild(pos - rowSize)
-- Below
gui.NextSelectionDown = container:FindFirstChild(pos + rowSize)
end
end
-- Test the Gamepad selection grid using the code below
local GuiService = game:GetService("GuiService")
local UserInputService = game:GetService("UserInputService")
GuiService.SelectedObject = container:FindFirstChild("1")
function updateSelection(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
local selectedObject = GuiService.SelectedObject
if not selectedObject then
return
end
if key == Enum.KeyCode.Up then
if not selectedObject.NextSelectionUp then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Down then
if not selectedObject.NextSelectionDown then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Left then
if not selectedObject.NextSelectionLeft then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Right then
if not selectedObject.NextSelectionRight then
GuiService.SelectedObject = selectedObject
end
end
end
end
UserInputService.InputBegan:Connect(updateSelection)
NextSelectionLeft
Esta propiedad establece el GuiObject seleccionado cuando el usuario mueve el seleccionador de gamepad a la izquierda. Si esta propiedad está vacía, mover el gamepad a la izquierda no cambiará el Interfaz gráfica (o GUI)seleccionado.
Mover el seleccionador del joystick al izquierdo establece el GuiService.SelectedObject a este objeto a menos que la GUI no esté Selectable . Nota que esta propiedad se puede configurar para un objeto de Interfaz gráfica (o GUI)incluso si no es Selectable, por lo que debe asegurarse de que el valor de la
También vea NextSelectionUp , NextSelectionDown y NextSelectionRight .
Amostras de código
-- Setup the Gamepad selection grid using the code below
local container = script.Parent:FindFirstChild("Container")
local grid = container:GetChildren()
local rowSize = container:FindFirstChild("UIGridLayout").FillDirectionMaxCells
for _, gui in pairs(grid) do
if gui:IsA("GuiObject") then
local pos = gui.Name
-- Left edge
gui.NextSelectionLeft = container:FindFirstChild(pos - 1)
-- Right edge
gui.NextSelectionRight = container:FindFirstChild(pos + 1)
-- Above
gui.NextSelectionUp = container:FindFirstChild(pos - rowSize)
-- Below
gui.NextSelectionDown = container:FindFirstChild(pos + rowSize)
end
end
-- Test the Gamepad selection grid using the code below
local GuiService = game:GetService("GuiService")
local UserInputService = game:GetService("UserInputService")
GuiService.SelectedObject = container:FindFirstChild("1")
function updateSelection(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
local selectedObject = GuiService.SelectedObject
if not selectedObject then
return
end
if key == Enum.KeyCode.Up then
if not selectedObject.NextSelectionUp then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Down then
if not selectedObject.NextSelectionDown then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Left then
if not selectedObject.NextSelectionLeft then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Right then
if not selectedObject.NextSelectionRight then
GuiService.SelectedObject = selectedObject
end
end
end
end
UserInputService.InputBegan:Connect(updateSelection)
NextSelectionRight
Esta propiedad establece el GuiObject seleccionado cuando el usuario mueve el seleccionador de gamepad a la derecha. Si esta propiedad está vacía, mover el gamepad a la derecha no cambiará el Interfaz gráfica (o GUI)seleccionado.
Mover el seleccionador del joystick a la derecha establece el GuiService.SelectedObject a este objeto a menos que el GUI no esté Selectable . Nota que esta propiedad se puede configurar para un objeto del Interfaz gráfica (o GUI)incluso si no es Selectable, por lo que debe asegurarse
También vea NextSelectionUp , NextSelectionDown y NextSelectionLeft .
Amostras de código
-- Setup the Gamepad selection grid using the code below
local container = script.Parent:FindFirstChild("Container")
local grid = container:GetChildren()
local rowSize = container:FindFirstChild("UIGridLayout").FillDirectionMaxCells
for _, gui in pairs(grid) do
if gui:IsA("GuiObject") then
local pos = gui.Name
-- Left edge
gui.NextSelectionLeft = container:FindFirstChild(pos - 1)
-- Right edge
gui.NextSelectionRight = container:FindFirstChild(pos + 1)
-- Above
gui.NextSelectionUp = container:FindFirstChild(pos - rowSize)
-- Below
gui.NextSelectionDown = container:FindFirstChild(pos + rowSize)
end
end
-- Test the Gamepad selection grid using the code below
local GuiService = game:GetService("GuiService")
local UserInputService = game:GetService("UserInputService")
GuiService.SelectedObject = container:FindFirstChild("1")
function updateSelection(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
local selectedObject = GuiService.SelectedObject
if not selectedObject then
return
end
if key == Enum.KeyCode.Up then
if not selectedObject.NextSelectionUp then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Down then
if not selectedObject.NextSelectionDown then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Left then
if not selectedObject.NextSelectionLeft then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Right then
if not selectedObject.NextSelectionRight then
GuiService.SelectedObject = selectedObject
end
end
end
end
UserInputService.InputBegan:Connect(updateSelection)
NextSelectionUp
Esta propiedad establece el GuiObject seleccionado cuando el usuario mueve el seleccionador de gamepad hacia arriba. Si esta propiedad está vacía, mover el gamepad hacia arriba no cambiará el Interfaz gráfica (o GUI)seleccionado.
Mover el seleccionador del gamepad hacia arriba establece el GuiService.SelectedObject a este objeto a menos que el GUI no esté Selectable . Nota que esta propiedad se puede configurar para un objeto de Interfaz gráfica (o GUI)incluso si no es Selectable, por lo que debe asegurarse de que el
También see NextSelectionDown , NextSelectionLeft , NextSelectionRight .
Amostras de código
-- Setup the Gamepad selection grid using the code below
local container = script.Parent:FindFirstChild("Container")
local grid = container:GetChildren()
local rowSize = container:FindFirstChild("UIGridLayout").FillDirectionMaxCells
for _, gui in pairs(grid) do
if gui:IsA("GuiObject") then
local pos = gui.Name
-- Left edge
gui.NextSelectionLeft = container:FindFirstChild(pos - 1)
-- Right edge
gui.NextSelectionRight = container:FindFirstChild(pos + 1)
-- Above
gui.NextSelectionUp = container:FindFirstChild(pos - rowSize)
-- Below
gui.NextSelectionDown = container:FindFirstChild(pos + rowSize)
end
end
-- Test the Gamepad selection grid using the code below
local GuiService = game:GetService("GuiService")
local UserInputService = game:GetService("UserInputService")
GuiService.SelectedObject = container:FindFirstChild("1")
function updateSelection(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
local selectedObject = GuiService.SelectedObject
if not selectedObject then
return
end
if key == Enum.KeyCode.Up then
if not selectedObject.NextSelectionUp then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Down then
if not selectedObject.NextSelectionDown then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Left then
if not selectedObject.NextSelectionLeft then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Right then
if not selectedObject.NextSelectionRight then
GuiService.SelectedObject = selectedObject
end
end
end
end
UserInputService.InputBegan:Connect(updateSelection)
Position
Esta propiedad determina la posición de píxeles y escalares de GuiObject usando un UDim2 . La posición está centrada alrededor de la posición del objeto GuiObject.AnchorPoint .
La posición escalar es relativa a la capacidad de la GUI padre, si la hubiere.
Las partes de píxel del valor UDim2 son las mismas independientemente del tamaño de la interfaz de usuario padre. Los valores representan la posición del objeto en píxeles. La posición real del objeto puede ser leída desde la propiedad GuiBase2d.AbsolutePosition.
Rotation
Esta propiedad determina el número de grados en que se gira el GuiObject. La rotación es relativa a la centro del objeto, no es el 2>Class.GuiObject.AnchorPoint|AnchorPoint2>, lo que significa que no puede cambiar el punto de rotación. Además, esta propiedad no es compatible con
Selectable
Esta propiedad determina si el GuiObject se puede seleccionar cuando se navega por los GUI al usar un controlador para juego.
Si esta propiedad es cierta, se puede seleccionar un GUI. Seleccionar un GUI también establece la propiedad GuiService.SelectedObject a ese objeto.
Cuando esto es falso, el GUI no se puede seleccionar. Sin embargo, establecer esto como falso cuando se selecciona un GUI no lo deseleccionará ni cambiará el valor de la propiedad GuiService.SelectedObject.
Añadir GuiObject.SelectionGained y GuiObject.SelectionLost no disparará para el elemento. Para deseleccionar un GuiObject, debes cambiar la propiedad GuiService.SelectedObject .
Esta propiedad es útil si se conecta un Interfaz gráfica (o GUI)a varios GUI a través de propiedades como esta GuiObject.NextSelectionUp , GuiObject.NextSelectionDown , Class.GuiObject|NextSelectionRight</
Amostras de código
local GuiService = game:GetService("GuiService")
local textBox = script.Parent
local function gainFocus()
textBox.Selectable = true
GuiService.SelectedObject = textBox
end
local function loseFocus(_enterPressed, _inputObject)
GuiService.SelectedObject = nil
textBox.Selectable = false
end
-- The FocusLost and FocusGained event will fire because the textBox
-- is of type TextBox
textBox.Focused:Connect(gainFocus)
textBox.FocusLost:Connect(loseFocus)
SelectionImageObject
Esta propiedad anula el adorno de selección predeterminado que se usa para los gamepads.
Tenga en cuenta que el elegido SelectionImageObject superpone el seleccionado GuiObject con el tamaño Size de la imagen. Para los mejores resultados, debe escalar el personalizado 1> SelectionImageObject1> a través de los valores de escala Datatype.UDim2 para ay
Cambiar el SelectionImageObject por un elemento GuiObject solo afecta ese elemento. Para afectar todos los elementos de GUI de un usuario, establece la propiedad PlayerGui.SelectionImageObject.
Para determinar o establecer qué elemento de GUI es seleccionado por el usuario, puede usar la propiedad GuiService.SelectedObject. El jugador usa el gamepad para seleccionar diferentes elementos de GUI, invocando el Class.GuiObject.NextSelectionUp|
SelectionOrder
GuiObjects con una menor Orden de Selección se selecciona antes que GuiObjects con una Orden de Selección más alta cuando se inicia la selección del gamepad o se llama a GuiService:Select() en un ancestral. Esta propiedad no afecta la navegación direccional. El valor predeterminado es 0.
Size
Esta propiedad determina el tamaño de escala y el tamaño de píxeles de GuiObject usando un UDim2 .
El tamaño de escalar es relativo al tamaño del elemento GUI padre, si lo hay.
Las partes de píxel del valor UDim2 son las mismas independientemente del tamaño de la interfaz de usuario padre. Los valores representan el tamaño del objeto en píxeles. El tamaño real del píxel del objeto se puede leer de la propiedad GuiBase2d.AbsoluteSize .
Si el GuiObject tiene un padre, su tamaño a lo largo de cada eje también se ve afectado por el límite de tamaño de su padre SizeConstraint .
Amostras de código
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Paste script into a LocalScript that is
-- parented to a Frame within a Frame
local frame = script.Parent
local container = frame.Parent
container.BackgroundColor3 = Color3.new(0, 0, 0) -- black
-- This function is called when the humanoid's health changes
local function onHealthChanged()
local human = player.Character.Humanoid
local percent = human.Health / human.MaxHealth
-- Change the size of the inner bar
frame.Size = UDim2.new(percent, 0, 1, 0)
-- Change the color of the health bar
if percent < 0.1 then
frame.BackgroundColor3 = Color3.new(1, 0, 0) -- black
elseif percent < 0.4 then
frame.BackgroundColor3 = Color3.new(1, 1, 0) -- yellow
else
frame.BackgroundColor3 = Color3.new(0, 1, 0) -- green
end
end
-- This function runs is called the player spawns in
local function onCharacterAdded(character)
local human = character:WaitForChild("Humanoid")
-- Pattern: update once now, then any time the health changes
human.HealthChanged:Connect(onHealthChanged)
onHealthChanged()
end
-- Connect our spawn listener; call it if already spawned
player.CharacterAdded:Connect(onCharacterAdded)
if player.Character then
onCharacterAdded(player.Character)
end
SizeConstraint
Esta propiedad establece los Size ejes que se basarán en el, relativos al tamaño de su padre.
Esta propiedad es útil para crear objetos GUI que están destinados a escalar con el ancho o altura de un objeto padre, pero no ambos, efectivamente preservando la proporción de aspecto del objeto.
Visible
Esta propiedad, tanto el GuiObject y sus descendientes serán renderizados.
El rendimiento de componentes individuales de un GuiObject se puede controlar individualmente a través de propiedades de transparencia como GuiObject.BackgroundTransparency , TextLabel.TextTransparency y 1> Class.ImageLabel.ImageTransparency1> .
Cuando esta propiedad sea false, el GuiObject será ignorado por estructuras de layout como UIListLayout, 1> Class.UIGridLayout1> y 4> Class.UITableLayout4>. En otras palabras, el espacio que el elemento ocuparía en la configuración de la estructura se usa por otros elementos en su lugar
Amostras de código
local gui = script.Parent
local window = gui:WaitForChild("Window")
local toggleButton = gui:WaitForChild("ToggleWindow")
local closeButton = window:WaitForChild("Close")
local function toggleWindowVisbility()
-- Flip a boolean using the `not` keyword
window.Visible = not window.Visible
end
toggleButton.Activated:Connect(toggleWindowVisbility)
closeButton.Activated:Connect(toggleWindowVisbility)
ZIndex
Esta propiedad determina el orden en que se renderiza un GuiObject en relación con los demás.
Por defecto, GuiObjects render en orden de prioridad ascendente donde aquellos con valores inferiores a ZIndex son renderizados por aquellos con valores más altos. Puedes cambiar el orden de renderizado dentro de un ScreenGui, <
Si no está seguro de que necesitará agregar un elemento entre dos elementos existentes en el futuro, es una buena práctica usar múltiples de 100 (0 ,100 ,1> 2001> , etc.). Esto garantiza una gran cantidad de valores de render de rendimiento que puede usar para elementos en capas entre otros
También vea LayoutOrder que controla el orden de ordenar de un GuiObject cuando se usa con una estructura de layout como 1> Class.UIListLayout1> o 4> Class.UIGridLayout4> .
Métodos
TweenPosition
Mueve con suavidad un GUI a una nueva posición UDim2 en el tiempo especificado usando el especificado Enum.EasingDirection y Enum.EasingStyle .
Esta función devolverá si la animación se jugar. No se reproducirá si otra animación está actuando en el GuiObject y el parámetro de sobrepaso es falso.
Véase también:
- GuiObject:TweenSize() , niños a tamaño de Interfaz gráfica (o GUI)
- GuiObject:TweenSizeAndPosition() , ajusta el tamaño y la posición de la Interfaz gráfica (o GUI)de forma sincronizada
Parâmetros
A dónde debería moverse la GUI.
La dirección en la que se facilita el GUI para el posición final .
El estilo en el que se facilita el GUI para el posición final .
Cuánto tiempo, en segundos, debería tomar el tween para completarse.
Si el tween se anulará un intermediación/interpolación de movimientoen progreso.
Una función de llamada para ejecutarse cuando se complete el tween.
Devolução
Si el tween jugará.
Amostras de código
local START_POSITION = UDim2.new(0, 0, 0, 0)
local GOAL_POSITION = UDim2.new(1, 0, 1, 0)
local guiObject = script.Parent
local function callback(state)
if state == Enum.TweenStatus.Completed then
print("The tween completed uninterrupted")
elseif state == Enum.TweenStatus.Canceled then
print("Another tween cancelled this one")
end
end
-- Initialize the GuiObject position, then start the tween:
guiObject.Position = START_POSITION
local willPlay = guiObject:TweenPosition(
GOAL_POSITION, -- Final position the tween should reach
Enum.EasingDirection.In, -- Direction of the easing
Enum.EasingStyle.Sine, -- Kind of easing to apply
2, -- Duration of the tween in seconds
true, -- Whether in-progress tweens are interrupted
callback -- Function to be callled when on completion/cancelation
)
if willPlay then
print("The tween will play")
else
print("The tween will not play")
end
TweenSize
Ajusta lentamente un GUI a un nuevo Datatype.UDim2 en el tiempo especificado usando el Enmarque.Ease especificado y el Enmarque.Ease estilo.
Esta función devolverá si la transición jugará. Por lo general, esto siempre devolverá true, pero devolverá false si otra transición está activa y se ha establecido el modo de anulación.
Véase también:
- GuiObject:TweenPosition() , a los niños a la posición de un Interfaz gráfica (o GUI)
- GuiObject:TweenSizeAndPosition() , ajusta el tamaño y la posición de la Interfaz gráfica (o GUI)de forma sincronizada
Parâmetros
El tamaño que debería redimensionarel GUI.
La dirección en la que se facilita el GUI para el tamaño final .
El estilo en el que se facilita el GUI para el tamaño final .
Cuánto tiempo, en segundos, debería tomar el tween para completarse.
Si el tween se anulará un intermediación/interpolación de movimientoen progreso.
Una función de llamada para ejecutarse cuando se complete el tween.
Devolução
Si el tween jugará.
Amostras de código
local guiObject = script.Parent
local function callback(didComplete)
if didComplete then
print("The tween completed successfully")
else
print("The tween was cancelled")
end
end
local willTween = guiObject:TweenSize(
UDim2.new(0.5, 0, 0.5, 0), -- endSize (required)
Enum.EasingDirection.In, -- easingDirection (default Out)
Enum.EasingStyle.Sine, -- easingStyle (default Quad)
2, -- time (default: 1)
true, -- should this tween override ones in-progress? (default: false)
callback -- a function to call when the tween completes (default: nil)
)
if willTween then
print("The GuiObject will tween")
else
print("The GuiObject will not tween")
end
TweenSizeAndPosition
Smoothly resize y mueve una GUI a una nueva Datatype.UDim2 -tamaño y posición en el tiempo especificado usando el especificado UDim2 y Enum.EasingDirection .
Esta función devolverá si la transición jugará. Por lo general, esto siempre devolverá true, pero devolverá false si otra transición está activa y se ha establecido el modo de anulación.
Véase también:
- GuiObject:TweenSize() , niños a tamaño de Interfaz gráfica (o GUI)
- GuiObject:TweenPosition() , a los niños a la posición de un Interfaz gráfica (o GUI)
Parâmetros
El tamaño que debería redimensionarel GUI.
A dónde debería moverse la GUI.
La dirección en la que se facilita el GUI a la escala de tamaño y posición de final .
El estilo en el que facilitar la GUI al tamaño final y posición final .
Cuánto tiempo, en segundos, debería tomar el tween para completarse.
Si el tween se anulará un intermediación/interpolación de movimientoen progreso.
Una función de llamada para ejecutarse cuando se complete el tween.
Devolução
Si el tween jugará.
Amostras de código
local frame = script.Parent.Frame
frame:TweenSizeAndPosition(UDim2.new(0, 0, 0, 0), UDim2.new(0, 0, 0, 0))
Eventos
InputBegan
Este evento se activa cuando un usuario comienza a interactuar con el GuiObject a través de un dispositivo de interfaz humana-ordenador (botón de ratón, toque comienzo, botón de teclado, etc).
El UserInputService tiene un evento de nombre similar que no está restringido a un elemento de UI específico: UserInputService.InputBegan .
Este evento siempre se activará independientemente del estado del juego.
Véase también:
Parâmetros
Un InputObject , que contiene datos útiles para la consulta de la entrada del usuario, como el type of input , state of input y 1> Class.InputObjeto.Position|坐标 de la pantalla de la entrada1> .
Amostras de código
-- In order to use the InputBegan event, you must specify the GuiObject
local gui = script.Parent
-- A sample function providing multiple usage cases for various types of user input
local function inputBegan(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
print("A key is being pushed down! Key:", input.KeyCode)
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
print("The left mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
print("The right mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Touch then
print("A touchscreen input has started at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Gamepad1 then
print("A button is being pressed on a gamepad! Button:", input.KeyCode)
end
end
gui.InputBegan:Connect(inputBegan)
InputChanged
Este evento se activa cuando un usuario cambia cómo interactúa a través de un dispositivo de interfaz humana-ordenador (botón de ratón, toque comienzo, botón de teclado, etc).
El UserInputService tiene un evento de nombre similar que no está restringido a un elemento de UI específico: UserInputService.InputChanged .
Este evento siempre se activará independientemente del estado del juego.
Véase también:
Parâmetros
Un InputObject , que contiene datos útiles para la consulta de la entrada del usuario, como el type of input , state of input y 1> Class.InputObjeto.Position|坐标 de la pantalla de la entrada1> .
Amostras de código
local UserInputService = game:GetService("UserInputService")
local gui = script.Parent
local function printMovement(input)
print("Position:", input.Position)
print("Movement Delta:", input.Delta)
end
local function inputChanged(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
print("The mouse has been moved!")
printMovement(input)
elseif input.UserInputType == Enum.UserInputType.MouseWheel then
print("The mouse wheel has been scrolled!")
print("Wheel Movement:", input.Position.Z)
elseif input.UserInputType == Enum.UserInputType.Gamepad1 then
if input.KeyCode == Enum.KeyCode.Thumbstick1 then
print("The left thumbstick has been moved!")
printMovement(input)
elseif input.KeyCode == Enum.KeyCode.Thumbstick2 then
print("The right thumbstick has been moved!")
printMovement(input)
elseif input.KeyCode == Enum.KeyCode.ButtonL2 then
print("The pressure being applied to the left trigger has changed!")
print("Pressure:", input.Position.Z)
elseif input.KeyCode == Enum.KeyCode.ButtonR2 then
print("The pressure being applied to the right trigger has changed!")
print("Pressure:", input.Position.Z)
end
elseif input.UserInputType == Enum.UserInputType.Touch then
print("The user's finger is moving on the screen!")
printMovement(input)
elseif input.UserInputType == Enum.UserInputType.Gyro then
local _rotInput, rotCFrame = UserInputService:GetDeviceRotation()
local rotX, rotY, rotZ = rotCFrame:toEulerAnglesXYZ()
local rot = Vector3.new(math.deg(rotX), math.deg(rotY), math.deg(rotZ))
print("The rotation of the user's mobile device has been changed!")
print("Position", rotCFrame.p)
print("Rotation:", rot)
elseif input.UserInputType == Enum.UserInputType.Accelerometer then
print("The acceleration of the user's mobile device has been changed!")
printMovement(input)
end
end
gui.InputChanged:Connect(inputChanged)
InputEnded
El evento Terminado de entrada se activa cuando un usuario deja de interactuar a través de un dispositivo de interfaz humana-ordenador (botón de ratón, toque comienzo, botón de teclado, etc).
El UserInputService tiene un evento de nombre similar que no está restringido a un elemento de UI específico: UserInputService.InputEnded .
Este evento siempre se activará independientemente del estado del juego.
Véase también:
Parâmetros
Un InputObject , que contiene datos útiles para la consulta de la entrada del usuario, como el type of input , state of input y 1> Class.InputObjeto.Position|坐标 de la pantalla de la entrada1> .
Amostras de código
-- In order to use the InputChanged event, you must specify a GuiObject
local gui = script.Parent
-- A sample function providing multiple usage cases for various types of user input
local function inputEnded(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
print("A key has been released! Key:", input.KeyCode)
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
print("The left mouse button has been released at", input.Position)
elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
print("The right mouse button has been released at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Touch then
print("A touchscreen input has been released at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Gamepad1 then
print("A button has been released on a gamepad! Button:", input.KeyCode)
end
end
gui.InputEnded:Connect(inputEnded)
MouseEnter
El evento MouseEnter se activa cuando un usuario mueve su mouse hacia un elemento GUI .
Por favor, no confíe en los argumentos x y y pasados por este evento como una forma fiable de determinar dónde se encuentra el mouse cuando ingresa a un Interfaz gráfica (o GUI). Estas coordenadas pueden cambiar incluso cuando el mouse ingresa al Interfaz gráfica (o GUI)a través del mismo borde - particularmente cuando el mouse ingresa al elemento rápidamente. Esto se debe a que los argumentos indican la posición del mouse cuando el
Este evento se activa incluso cuando el elemento GUI se renderiza debajo de otro elemento.
Si desea rastrear cuando el mouse de un usuario deja un elemento de GUI, puede usar el evento GuiObject.MouseLeave.
Véase también:
Parâmetros
La x coordenada de la pantalla en píxeles, relativa a la esquina superior izquierda de la pantalla.
La coordenada de la pantalla del ratónen píxeles, relativa a la esquina superior izquierda de la pantalla.
Amostras de código
local guiObject = script.Parent
guiObject.MouseEnter:Connect(function(x, y)
print("The user's mouse cursor has entered the GuiObject at position", x, ",", y)
end)
MouseLeave
El evento MouseLeave se activa cuando un usuario mueve su mouse fuera de un elemento GUI .
Por favor, no confíe en los argumentos x y y pasados por este evento como una forma fiable de determinar dónde se encuentra el mouse cuando se va de un Interfaz gráfica (o GUI). Estas coordenadas pueden cambiar incluso cuando el mouse se va del Interfaz gráfica (o GUI)a través del mismo borde - particularmente cuando el mouse se va del elemento rápidamente. Esto se debe a que los argumentos indican la posición del mouse cuando el
Este evento se activa incluso cuando el elemento GUI se renderiza debajo de otro elemento.
Véase también:
Parâmetros
La x coordenada de la pantalla en píxeles, relativa a la esquina superior izquierda de la pantalla.
La coordenada de la pantalla del ratónen píxeles, relativa a la esquina superior izquierda de la pantalla.
MouseMoved
Dispara cuando el usuario mueve el mouse mientras está dentro de un elemento GUI . Es similar a Mouse.Move, que dispara independientemente de si el mouse del usuario está sobre un elemento GUI.
Nota, este evento se activa cuando se actualiza la posición del ratón, por lo tanto, se activará repetidamente mientras se mueve.
Los argumentos x y y indican las coordenadas de pantalla actualizadas del mouse del usuario en píxeles. Estos pueden ser útiles para determinar la ubicación del ratónen la Interfaz gráfica (o GUI), la pantalla y la Delta si el ratónestá siendo rastreado en una variable global.
El código a continuación demuestra cómo determinar el desplazamiento de Vector2 del mouse del usuario en relación con un elemento GUI:
local CustomScrollingFrame = script.Parent
local SubFrame = CustomScrollingFrame:FindFirstChild("SubFrame")
local mouse = game.Players.LocalPlayer:GetMouse()
function getPosition(X, Y)
local gui_X = CustomScrollingFrame.AbsolutePosition.X
local gui_Y = CustomScrollingFrame.AbsolutePosition.Y
local pos = Vector2.new(math.abs(X - gui_X), math.abs(Y - gui_Y - 36))
print(pos)
end
CustomScrollingFrame.MouseMoved:Connect(getPosition)
Nota que este evento puede no disparar exactamente cuando el mouse del usuario ingresa o sale de un elemento de GUI. Por lo tanto, los argumentos x y y pueden no coincidir perfectamente con las coordenadas de los límites del Interfaz gráfica (o GUI).
Véase también:
Parâmetros
La x coordenada de la pantalla en píxeles, relativa a la esquina superior izquierda de la pantalla.
La coordenada de la pantalla del ratónen píxeles, relativa a la esquina superior izquierda de la pantalla.
MouseWheelBackward
El evento WheelBackward se activa cuando un usuario desplaza su rueda de ratón hacia atrás cuando el mouse está sobre un elemento de GUI. Es similar a GUI, que se activa independientemente de si el mouse del usuario está sobre un elemento de GUI.
Este evento se activa simplemente como una indicación del movimiento hacia atrás del rueda. Esto significa que los argumentos de x y y de los coordenadas de mouse no cambian como resultado de este evento. Estas coordenadas solo cambian cuando el mouse se mueve, lo que se puede rastrear con el evento GuiObject.MouseMoved.
Véase también:
Parâmetros
La x coordenada de la pantalla en píxeles, relativa a la esquina superior izquierda de la pantalla.
La coordenada de la pantalla del ratónen píxeles, relativa a la esquina superior izquierda de la pantalla.
MouseWheelForward
El evento WheelForward se activa cuando un usuario desplaza su rueda del mouse hacia delante cuando el mouse está sobre un elemento de GUI. Es similar a GUI, que se activa independientemente de si el usuario tiene el mouse sobre un elemento GUI.
Este evento se activa simplemente como una indicación de la dirección del movimiento del rueda. Esto significa que los argumentos de x y y de los coordenadas de mover el mouse no cambian como resultado de este evento. Estas coordenadas solo cambian cuando el mouse se mueve, lo que se puede rastrear con el evento GuiObject.MouseMoved.
Véase también:
Parâmetros
La x coordenada de la pantalla en píxeles, relativa a la esquina superior izquierda de la pantalla.
La y coordenada del ratóndel usuario.
SelectionGained
Este evento se activa cuando el seleccionador de Gamepad comienza a enfocarse en el GuiObject .
Si desea verificar desde el Gamepad selecciona detenerse en el elemento GUI, puede usar el evento GuiObject.SelectionLost .
Cuando un GUI gana enfoque de selección, el valor de la propiedad SelectedObject también cambia a la que gana en selección. Para determinar qué GUI ganó en selección, verifique el valor de esta propiedad.
Amostras de código
local guiObject = script.Parent
local function selectionGained()
print("The user has selected this button with a gamepad.")
end
guiObject.SelectionGained:Connect(selectionGained)
SelectionLost
Este evento se activa cuando el GamepadSelector deja de centrarse en el GUI .
Si desea verificar desde el Gamepad selecciona comienza a enfocarse en el elemento GUI, puede usar el evento GuiObject.SelectionGained .
Cuando un GUI pierde el enfoque de selección, el valor de la propiedad SelectionObject cambia a nulo o al elemento GUI que gana el enfoque de selección. Para determinar qué GUI ganó la selección, o si no se selecciona ningún GUI, compruebe el valor de esta propiedad.
Amostras de código
local guiObject = script.Parent
local function selectionLost()
print("The user no longer has this selected with their gamepad.")
end
guiObject.SelectionLost:Connect(selectionLost)
TouchLongPress
El evento TouchLongPress ocurre después de un breve momento cuando el jugador mantiene su dedo en el elemento de la interfaz de usuario usando un dispositivo habilitado para el toque. Se activa con
Dado que este evento solo requiere un dedo, este evento se puede simular en Studio usando el emulador y un ratón.
Parâmetros
Un arreglo de Vector2 que describe las posiciones relativas de los dedos implicados en el gesto.
Un Enum.UserInputState que describe el estado del gesto:
- Comienza fuegos una vez en el comienzo del gesto (después de la breve demora)
- Cambia los fuegos si el jugador mueve el dedo mientras presiona hacia abajo
- Termina los fuegos una vez en el final del gesto cuando liberen su dedo.
Amostras de código
local frame = script.Parent
frame.Active = true
local dragging = false
local basePosition
local startTouchPosition
local borderColor3
local backgroundColor3
local function onTouchLongPress(touchPositions, state)
if state == Enum.UserInputState.Begin and not dragging then
-- Start a drag
dragging = true
basePosition = frame.Position
startTouchPosition = touchPositions[1]
-- Color the frame to indicate the drag is happening
borderColor3 = frame.BorderColor3
backgroundColor3 = frame.BackgroundColor3
frame.BorderColor3 = Color3.new(1, 1, 1) -- White
frame.BackgroundColor3 = Color3.new(0, 0, 1) -- Blue
elseif state == Enum.UserInputState.Change then
local touchPosition = touchPositions[1]
local deltaPosition = UDim2.new(
0,
touchPosition.X - startTouchPosition.X,
0,
touchPosition.Y - startTouchPosition.Y
)
frame.Position = basePosition + deltaPosition
elseif state == Enum.UserInputState.End and dragging then
-- Stop the drag
dragging = false
frame.BorderColor3 = borderColor3
frame.BackgroundColor3 = backgroundColor3
end
end
frame.TouchLongPress:Connect(onTouchLongPress)
TouchPan
El evento TouchPan ocurre cuando el jugador mueve su dedo en el elemento de la interfaz de usuario con un dispositivo habilitado para el tacto. Ocurre poco antes de que GuiObject.TouchSwipe lo hiciera, y no ocurre con GuiObject.TouchTap . Este evento es útil para permitir que el jugador manipule la posición de los elementos de la interfaz
Este evento se activa con una tabla de Vector2 que describen las posiciones de pantalla relativas de los dedos implicados en el gesto. Además, se activa varias veces: enum.userinputstate. comenz después de un breve retraso, enuem.userinputstate.change cuando el jugador mueve su dedo durante el gesto, y finalmente con 1>
Este evento no se puede simular en Studio usando el emulador y un ratón; debe tener un dispositivo de toque real para dispararlo.
Parâmetros
Un arreglo Lua de Vector2 objetos, cada uno de los cuales indica la posición de todos los dedos implicados en el gesto.
Indica la distancia de la señal de la cazuela desde su punto de partida.
Indica con qué rapidez se está realizando el gesto en cada dimensión.
Indica el Enum.UserInputState del gesto.
Amostras de código
local innerFrame = script.Parent
local outerFrame = innerFrame.Parent
outerFrame.BackgroundTransparency = 0.75
outerFrame.Active = true
outerFrame.Size = UDim2.new(1, 0, 1, 0)
outerFrame.Position = UDim2.new(0, 0, 0, 0)
outerFrame.AnchorPoint = Vector2.new(0, 0)
outerFrame.ClipsDescendants = true
local dragging = false
local basePosition
local function onTouchPan(_touchPositions, totalTranslation, _velocity, state)
if state == Enum.UserInputState.Begin and not dragging then
dragging = true
basePosition = innerFrame.Position
outerFrame.BackgroundTransparency = 0.25
elseif state == Enum.UserInputState.Change then
innerFrame.Position = basePosition + UDim2.new(0, totalTranslation.X, 0, totalTranslation.Y)
elseif state == Enum.UserInputState.End and dragging then
dragging = false
outerFrame.BackgroundTransparency = 0.75
end
end
outerFrame.TouchPan:Connect(onTouchPan)
TouchPinch
El evento TouchPinch ocurre cuando el jugador usa dos dedos para hacer un pinch o un gesto de agarre en el elemento de la interfaz de usuario que se habilita con un dispositivo de toque. Un pinch ocurre cuando dos o más dedos se mueven más cerca, y un
Este evento se activa con una tabla de Vector2 que describe las posiciones de pantalla relativas de los dedos implicados en el gesto. Además, se activa varias veces: Enum.UserInputState.Begin después de un breve retraso, enum.UserInputState.Change
Dado que este evento requiere al menos dos dedos, no es posible simularlo en Studio usando el emulador y un ratón; debe tener un dispositivo de toque real.
Parâmetros
Un arreglo Lua de Vector2 objetos, cada uno de los cuales indica la posición de todos los dedos implicados en el gesto de pincho.
Un flotador que indica la diferencia desde el principio del gesto de pinch.
Un flotador que indica con qué rapidez se está produciendo el pinch.
Indica el Enum.UserInputState del gesto.
Amostras de código
local innerFrame = script.Parent
local outerFrame = innerFrame.Parent
outerFrame.BackgroundTransparency = 0.75
outerFrame.Active = true
outerFrame.Size = UDim2.new(1, 0, 1, 0)
outerFrame.Position = UDim2.new(0, 0, 0, 0)
outerFrame.AnchorPoint = Vector2.new(0, 0)
outerFrame.ClipsDescendants = true
local dragging = false
local uiScale = Instance.new("UIScale")
uiScale.Parent = innerFrame
local baseScale
local function onTouchPinch(_touchPositions, scale, _velocity, state)
if state == Enum.UserInputState.Begin and not dragging then
dragging = true
baseScale = uiScale.Scale
outerFrame.BackgroundTransparency = 0.25
elseif state == Enum.UserInputState.Change then
uiScale.Scale = baseScale * scale -- Notice the multiplication here
elseif state == Enum.UserInputState.End and dragging then
dragging = false
outerFrame.BackgroundTransparency = 0.75
end
end
outerFrame.TouchPinch:Connect(onTouchPinch)
TouchRotate
El evento TouchRotate ocurre cuando el jugador usa dos dedos para hacer un gesto de pinch o agarrar en el elemento de la interfaz de usuario que se habilita con un dispositivo de toque. La rotación ocurre cuando el ángulo de la línea entre dos dedos cambia. Este evento ocurre en conjunción con GuiObject.TouchPan . Este evento es útil para permitir que el jugador manipule la rotación de los element
Este evento se activa con una tabla de Vector2 que describen las posiciones de pantalla relativas de los dedos implicados en el gesto. Además, se activa varias veces: enum.userinputstate. comenz después de un breve retraso, enuem.userinputstate.change cuando el jugador se mueve un dedo durante el gesto, y finalmente con
Dado que este evento requiere al menos dos dedos, no es posible ser simulado en Studio usando el emulador y un ratón; debe tener un dispositivo de toque real.
Parâmetros
Un arreglo Lua de Vector2 objetos, cada uno de los cuales indica la posición de todos los dedos implicados en el gesto.
Un flotador que indica la cantidad de rotación que ha ido desde el comienzo del gesto.
Un flotador que indica la rapidez con la que se está realizando el gesto.
Indica el Enum.UserInputState del gesto.
Amostras de código
local innerFrame = script.Parent
local outerFrame = innerFrame.Parent
outerFrame.BackgroundTransparency = 0.75
outerFrame.Active = true
outerFrame.Size = UDim2.new(1, 0, 1, 0)
outerFrame.Position = UDim2.new(0, 0, 0, 0)
outerFrame.AnchorPoint = Vector2.new(0, 0)
outerFrame.ClipsDescendants = true
local dragging = false
local baseRotation = innerFrame.Rotation
local function onTouchRotate(_touchPositions, rotation, _velocity, state)
if state == Enum.UserInputState.Begin and not dragging then
dragging = true
baseRotation = innerFrame.Rotation
outerFrame.BackgroundTransparency = 0.25
elseif state == Enum.UserInputState.Change then
innerFrame.Rotation = baseRotation + rotation
elseif state == Enum.UserInputState.End and dragging then
dragging = false
outerFrame.BackgroundTransparency = 0.75
end
end
outerFrame.TouchRotate:Connect(onTouchRotate)
TouchSwipe
El evento de toque de la interfaz de usuario se activa cuando el jugador realiza un gesto de toque en el elemento de la interfaz de usuario que se activa con un dispositivo habilitado para el toque. Se activa con la dirección del gesto (Up, Down, Left o Right) y el número de puntos de toque implicados en el gesto. Los gestos de toque a menudo se usan para cambiar las pestañas en las interfaces de usuario móviles.
Dado que este evento solo requiere un dedo, se puede simular en Studio usando el emulador y un ratón.
Parâmetros
Un Enum.SwipeDirection que indica la dirección de la dirección del gesto de desplazamiento (Arriba, Abajo, Izquierda o Derecha).
El número de puntos de toque implicados en el gesto (usualmente 1).
Amostras de código
local frame = script.Parent
frame.Active = true
-- How far the frame should bounce on a successful swipe
local BOUNCE_DISTANCE = 50
-- Current state of the frame
local basePosition = frame.Position
local hue = 0
local saturation = 128
local function updateColor()
frame.BackgroundColor3 = Color3.fromHSV(hue / 256, saturation / 256, 1)
end
local function onTouchSwipe(swipeDir, _touchCount)
-- Change the BackgroundColor3 based on the swipe direction
local deltaPos
if swipeDir == Enum.SwipeDirection.Right then
deltaPos = UDim2.new(0, BOUNCE_DISTANCE, 0, 0)
hue = (hue + 16) % 255
elseif swipeDir == Enum.SwipeDirection.Left then
deltaPos = UDim2.new(0, -BOUNCE_DISTANCE, 0, 0)
hue = (hue - 16) % 255
elseif swipeDir == Enum.SwipeDirection.Up then
deltaPos = UDim2.new(0, 0, 0, -BOUNCE_DISTANCE)
saturation = (saturation + 16) % 255
elseif swipeDir == Enum.SwipeDirection.Down then
deltaPos = UDim2.new(0, 0, 0, BOUNCE_DISTANCE)
saturation = (saturation - 16) % 255
else
deltaPos = UDim2.new()
end
-- Update the color and bounce the frame a little
updateColor()
frame.Position = basePosition + deltaPos
frame:TweenPosition(basePosition, Enum.EasingDirection.Out, Enum.EasingStyle.Bounce, 0.7, true)
end
frame.TouchSwipe:Connect(onTouchSwipe)
updateColor()
TouchTap
El evento TouchTap se activa cuando el jugador realiza un gesto de toque en el elemento de la interfaz de usuario que utiliza un dispositivo habilitado para tocar. Un toque es un rápido toque simple sin ningún movimiento implicado (un presionamiento más largo firearía Class.GuiObject.Touch
Dado que este evento solo requiere un dedo, se puede simular en Studio usando el emulador y un ratón.
Parâmetros
Amostras de código
local frame = script.Parent
frame.Active = true
local function onTouchTap()
-- Toggle background transparency
if frame.BackgroundTransparency > 0 then
frame.BackgroundTransparency = 0
else
frame.BackgroundTransparency = 0.75
end
end
frame.TouchTap:Connect(onTouchTap)