GuiObject
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
GuiObject è un oggetto classe (molto come BasePart ) per un oggetto interfaccia utente 2D. Def
Per manipolare in modo speciale la disposizione degli oggetti GUI, puoi usare una struttura di layout come lista/flex o griglia , e puoi stilare oltre le loro proprietà di base attraverso modificatori di aspetto .
Anche se è possibile rilevare gli eventi del pulsante del mouse su qualsiasi oggetto GUI utilizzando InputBegan e InputEnded, solo ImageButton e 1> Class.TextButton1>
Sommario
Proprietà
Determina se questo elemento UI affonda l'input.
Determina il punto di origine di un GuiObject , rispetto alla sua dimensione assoluta.
Determina se la ridimensionamento avviene in base al contenuto figlio.
Determina il colore di sfondo GuiObject .
Determina la trasparenza di sfondo e di GuiObject .
Determina il colore del GuiObject bordura.
Determina in che modo il GuiObject confine è distribuito rispetto alle sue dimensioni.
Determina la larghezza del pixel del confine GuiObject .
Determina se il discendente GuiObjects al di fuori dei confini di un elemento GUI padre dovrebbe essere Renderizzare.
Determina se il mouse del Giocatoreviene attivamente premuto sul GuiObject o no.
Determina se il GuiButton può essere interattato o no, o se il GuiState del GuiObject sta cambiando o no.
Controlla l'ordine di sorta del GuiObject quando viene utilizzato con un UIGridStyleLayout .
Imposta il GuiObject che verrà selezionato quando il pulsante di selezione del gamepad verrà spostato verso il basso.
Imposta il GuiObject che verrà selezionato quando il pulsante di selezione del gamepad sarà spostato a sinistra.
Imposta il GuiObject che verrà selezionato quando il pulsante di selezione del gamepad sarà spostato a destra.
Imposta il GuiObject che verrà selezionato quando il pulsante di selezione del gamepad verrà spostato verso l'alto.
Determina la posizione pixel e scalare del GuiObject .
Determina il numero di gradi con cui il GuiObject è ruotato.
Determine se il GUI può essere selezionato da un gamepad.
Sovrascrivi l'ornamento di selezione predefinito utilizzato per i gamepad.
L'ordine di GuiObjects selezionato dalla selezione della barra di gioco.
Determina la dimensione pixel e scalare del GuiObject .
Imposta gli assi Size su cui sarà basato il GuiObject parent.
Una proprietà mistura di BackgroundTransparency e TextTransparency .
Determina se il GuiObject e i suoi discendenti saranno renduti.
Determina l'ordine in cui un GuiObject rende rispetto agli altri.
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
- TweenPosition(endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Smoothly moves a GUI to a new UDim2 .
- TweenSize(endSize : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Ridimensiona rapidamente una GUI in una nuova UDim2 .
- TweenSizeAndPosition(endSize : UDim2,endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Smoothly sposta una GUI a una nuova dimensione e posizione.
Eventi
Si attiva quando un utente inizia a interagire con un dispositivo dell'interfaccia utente-computer (tasto del mouse, inizio del tocco, pulsante della tastiera, ecc).
Si attiva quando un utente cambia il modo in cui interagisce con un dispositivo dell'interfaccia utente-computer (tasto del mouse, inizio del tocco, pulsante del tastiera, ecc).
Si esegue quando un utente smette di interagire tramite un dispositivo di interfaccia uomo-corrispettore (tasto del mouse, inizio del tocco, pulsante del tastiera, ecc).
Si attiva quando un utente muove il mouse in un elemento GUI.
Si attiva quando un utente muove il mouse da un elemento GUI.
Si attiva ogni volta che un utente muove il mouse quando è all'interno di un elemento GUI.
Si attiva quando un utente fa scorrere la rotella del mouse quando il mouse è su un elemento GUI.
Si attiva quando un utente fa clic con il mouse sulla ruota del mouse quando il mouse è su un elemento GUI.
Fired quando l'oggetto GuiObject viene focalizzato con il Gamepad Selector.
Si è spento quando il Gamepad Selector ha smesso di concentrarsi sull'oggetto Gui.
Si attiva quando il giocatore inizia, continua e si ferma quando viene premuto a lungo sull'elemento UI.
- TouchPan(touchPositions : Array,totalTranslation : Vector2,velocity : Vector2,state : Enum.UserInputState):RBXScriptSignal
Si attiva quando il giocatore muove il dito sull'elemento UI.
- TouchPinch(touchPositions : Array,scale : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Si attiva quando il giocatore esegue un gesto di pizzico o di trazione utilizzando due dita sull'elemento UI.
- TouchRotate(touchPositions : Array,rotation : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Si attiva quando il giocatore esegue una rotazione utilizzando due dita sull'elemento UI.
Si attiva quando il giocatore esegue una manovra di swipe sull'elemento UI.
Si attiva quando il giocatore esegue un gesto di tocco sull'elemento UI.
- 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à
Active
Questa proprietà determina se questo GuiObject affonderà l'input nello Spazio3D, come i modelli sottostanti con una classe ClickDetector . In altre parole, se il giocatore tenta di fare clic sul detector con il mouse in posizione attiva, l'UI bloccherà l'input dal raggiungere il detector.
Per gli oggetti GuiButton ( ImageButton e Class.TextButton</
Campioni di codice
-- 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 proprietà AnchorPoint determinisce il punto di origine di un GuiObject , rispetto alla sua dimensione assoluta. Il punto di origine determina da dove viene posizionato l'elemento ( attraverso GuiObject.Position ) e dall'espansione renduta 1> Class.GuiObject.Size1> .
Vedi qui per i diagrammi e dettagli illustrati.
Campioni di codice
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
Questa proprietà viene utilizzata per ridimensionare automaticamente gli oggetti UI dei suoi discendenti in base alla loro dimensione. Puoi utilizzare questa proprietà per aggiungere in modo dinamico testo e altri contenuti a un oggetto UI all'edizione o in tempo di esecuzione, e la dimensione si adatterà per adattarsi a quel contenuto.
Quando AutomaticSize è impostato su un valore Enum.AutomaticSize a qualsiasi altra cosa che non sia None, questo oggetto UI potrebbe ridimensionarsi a seconda del suo contenuto figlio.
For more information on how to use this property and how it works, please see here .
Campioni di codice
-- 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
Questa proprietà determina il colore di un GuiObject sfondo di sfondo (il colore di riempimento). Se il tuo elemento contiene testo, come un TextBox , TextButton o 2>Class.TextLabel2>, assicurati che il colore del tuo sfondo corrisponda al colore del testo.
Un'altra proprietà che determina le proprietà visive del background è GuiObject.BackgroundTransparency ; se questa è impostata su 1 , né il background né il border Renderizzare.
Vedi anche BorderColor3 .
Campioni di codice
-- 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
Questa proprietà determina la trasparenza del GuiObject sfondo e del confine. Non determinare, tuttavia, la trasparenza del testo se il GUI è un TextBox , TextButton o
Se questa proprietà è impostata su 1, né il background né il border render e il background GUI saranno completamente trasparenti.
BorderColor3
Determina il colore del GuiObject rettangolare confine (anche conosciuto come colore del tratto). Questo è separato dalla proprietà GuiObject.BackgroundColor3 . Non sarai in grado di vedere il confine dell'oggetto se la sua proprietà GuiObject.BorderSizePixel è impostata su 1> 01> .
Nota che il UIStroke componente consente effetti di bordura più avanzati.
Campioni di codice
-- 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
Questa proprietà determina in che modo il GuiObject border è distribuito rispetto alle sue dimensioni utilizzando l'enum del medesimo nome, Enum.BorderMode .
Nota che UIStroke può sovrascrivere questa proprietà e consentire effetti di bordura più avanzati.
BorderSizePixel
Questa proprietà determina la larghezza della GuiObject border, in pixel. Impostando questo a 0 disabilita completamente la border.
Nota che UIStroke può sovrascrivere questa proprietà e consentire effetti di bordura più avanzati.
Campioni di codice
-- 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
Questa proprietà determina se il GuiObject clipperà ( renderà invisibile ) qualsiasi parte degli elementi GUI discendenti che altrimenti renderanno fuori dal limite del rettangolo.
Nota che GuiObject.Rotation non è supportato da questa Proprietà. Se questa o qualsiasi antenato GUI ha un non-零 GuiObject.Rotation , questa proprietà è 1> ignorata1> e gli elementi GUI discendenti saranno visualizzati indipendentemente dal valore di questa Proprietà.
Interactable
Determina se il GuiButton può essere interattato o no, o se il GuiState del GuiObject sta cambiando o no.
Su un GuiButton :
- Quando l'impostazione Interactable su il GuiButton è impostata su false, il 2>Class.GuiButton2> non potrà più essere premuto o cliccato e l'impostazione 5>Class.GuiObject.GuiState|
- Quando la impostazione Interactable su il GuiButton è impostata su true, il 1> Class.GuiButton1> si comporta normalmente di nuovo e il 4> Class.GuiObject.GuiState|GuiState4> si comporta normalmente.
Su un GuiObject :
- Quando la impostazione Interactable su GuiButton è impostata su false false 2>Class.GuiObject.GuiState|GuiState2> , l'5>Class.GuiObject.GuiState5> sarà costantemente impostata su 8>Class.GuiObject.NonInteractable|NonInteractable8> .
- Quando l'impostazione Interactable sull'GuiButton è impostata su true, l'2>Class.GuiObject.GuiState|GuiState2> si comporta normalmente di nuovo.
LayoutOrder
Questa proprietà controlla l'ordine di sorting del GuiObject quando si utilizza una UIGridStyleLayout (come UIListLayout o 2>Class.UIPageLayout2> ) con 5>Class.UIGridStyleLayout.Sort
GuiObjects sono ordinati in ordine crescente in cui i valori più bassi hanno la priorità sui valori più alti. Gli oggetti con gli stessi valori vengono restituiti all'ordine in cui sono stati aggiunti.
Se non sei sicuro di dover aggiungere un elemento tra due elementi esistenti in futuro, è una buona pratica utilizzare multipli di 100 (0 , 100 , 1> 2001> , ecc.). Ciò garantisce uno spazio di ordine di layout che puoi utilizzare per gli elementi ordinati in-between altri
Vedi anche ZIndex che determina l'ordine di rendering dell'oggetto invece che ordinare l'ordine.
NextSelectionDown
Questa proprietà imposta il GuiObject selezionato quando l'utente muove il gamepad selettore verso il basso. Se questa proprietà è vuota, muovendo il gamepad verso il basso non cambierà il GUI or Intefaccia grafica utenteselezionato.
Spostare il selettore del gamepad verso il basso imposta il GuiService.SelectedObject su questo oggetto a meno che l'interfaccia utente non sia Selectable . Nota che questa proprietà può essere impostata su un oggetto GUI or Intefaccia grafica utenteanche se non è Selectable, quindi assicur
Vedi anche NextSelectionUp , NextSelectionLeft e NextSelectionRight .
Campioni di codice
-- 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
Questa proprietà imposta il GuiObject selezionato quando l'utente muove il gamepad selettore a sinistra. Se questa proprietà è vuota, muovendo il gamepad a sinistra non cambierà il GUI or Intefaccia grafica utenteselezionato.
Spostare il selettore del gamepad a sinistra imposta il GuiService.SelectedObject su questo oggetto a meno che l'interfaccia utente non sia Selectable . Nota che questa proprietà può essere impostata su un oggetto GUI or Intefaccia grafica utenteanche se non è Selectable, quindi assicur
Vedi anche NextSelectionUp , NextSelectionDown e NextSelectionRight .
Campioni di codice
-- 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
Questa proprietà imposta il GuiObject selezionato quando l'utente muove il gamepad selettore a destra. Se questa proprietà è vuota, muovendo il gamepad a destra non cambierà il GUI or Intefaccia grafica utenteselezionato.
Spostare il selettore del gamepad alla destra imposta il GuiService.SelectedObject su questo oggetto a meno che l'interfaccia utente non sia Selectable . Nota che questa proprietà può essere impostata su un oggetto GUI or Intefaccia grafica utenteanche se non è Selectable, quindi assicurati
Vedi anche NextSelectionUp , NextSelectionDown e NextSelectionLeft .
Campioni di codice
-- 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
Questa proprietà imposta il GuiObject selezionato quando l'utente sposta il gamepad selettore verso l'alto. Se questa proprietà è vuota, spostando il gamepad verso l'alto non cambierà il GUI or Intefaccia grafica utenteselezionato.
Spostare il selettore del gamepad verso l'alto imposta il GuiService.SelectedObject su questo oggetto a meno che l'interfaccia utente non sia Selectable . Nota che questa proprietà può essere impostata su un oggetto GUI or Intefaccia grafica utenteanche se non è Selectable, quindi assicur
Vedi anche NextSelectionDown , NextSelectionLeft , NextSelectionRight .
Campioni di codice
-- 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
Questa proprietà determina il GuiObject pixel e la posizione scalare utilizzando un UDim2 . La posizione è centrata attorno all'oggetto's GuiObject.AnchorPoint .
La posizione scalare è relativa alla dimensione dell'elemento GUI padre, se presente.
Le parti del pixel del valore UDim2 sono le stesse indipendentemente dalla dimensione della GUI or Intefaccia grafica utentedi origine. I valori rappresentano la posizione dell'oggetto in pixel. La posizione reale dell'oggetto può essere letta dalla ProprietàGuiBase2d.AbsolutePosition.
Rotation
Questa proprietà determina il numero di gradi con cui il GuiObject è ruotato. La rotazione è relativa al centro del centro dell'oggetto, non alla Class.GuiObject.AnchorPoint|AnchorPoint , il che significa che non puoi cambiare il punto di rotazione. Inoltre, questa proprietà non è compatibile con 1>
Selectable
Questa proprietà determina se il GuiObject può essere selezionato mentre si naviga GUI utilizzando un gamepad.
Se questa proprietà è vera, è possibile selezionare un'interfaccia utente. Selezionando un'interfaccia utente imposta anche la proprietà GuiService.SelectedObject a quel oggetto.
Quando questa opzione è falsa, l'interfaccia utente non può essere selezionata. Tuttavia, impostando questa opzione su false quando viene selezionata un'interfaccia utente non la deselezionerà né cambierà il valore della ProprietàGuiService.SelectedObject.
Aggiungi GuiObject.SelectionGained e GuiObject.SelectionLost non verranno eseguiti per l'elemento. Per deselezionare un GuiObject, devi cambiare la ProprietàGuiService.SelectedObject.
Questa proprietà è utile se un'interfaccia utente è connessa a più interfacce utente tramite proprietà come questa GuiObject.NextSelectionUp , GuiObject.NextSelectionDown , Class.GuiObject
Campioni di codice
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
Questa proprietà sovrascrive l'ornamento di selezione predefinito utilizzato per i gamepad.
Nota che il SelectionImageObject scelto sovrappone il GuiObject selezionato con il Size della immagine. Per i migliori risultati, dovresti ingrandare il 1> SelectionImageObject1> personalizzato tramite gli script di dimensioni 4> Datatype.UDim2</
Cambiare il SelectionImageObject per un GuiObject elemento influenza solo quell'elemento. Per influenzare tutti gli elementi GUI di un utente, imposta la proprietà PlayerGui.SelectionImageObject.
Per determinare o impostare quale GUI elemento è selezionato dall'utente, puoi utilizzare la ProprietàGuiService.SelectedObject. Il giocatore usa il gamepad per selezionare diversi elementi GUI, invocando il Class.GuiObject.NextSelectionUp|Next
SelectionOrder
GuiObjects con un ordine di selezione inferiore a quello di GuiObjects con un ordine di selezione più alto quando si inizia la selezione del gamepad o si chiama GuiService:Select() su un antenato. Questa proprietà non influisce sulla navigazione direzionale. Il valore predefinito è 0.
Size
Questa proprietà determina la dimensione GuiObject in pixel e UDim2 .
La dimensione scalare è relativa alla dimensione dell'elemento GUI padre, se presente.
Le parti del pixel del valore UDim2 sono le stesse indipendentemente dalla dimensione della GUI or Intefaccia grafica utentedi origine. I valori rappresentano la dimensione dell'oggetto in pixel. La dimensione reale dell'oggetto può essere letta dalla ProprietàGuiBase2d.AbsoluteSize.
Se il GuiObject ha un parent, la sua dimensione lungo ciascun asse è anche influenzata dal SizeConstraint del parent.
Campioni di codice
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
Questa proprietà imposta gli Size assi su cui si baserà il GuiObject , rispetto alla dimensione dei suoi parent.
Questa proprietà è utile per creare oggetti GUI che sono pensati per scalare con la larghezza o l'altezza di un oggetto padre, ma non entrambi, preservando effettivamente il rapporto aspetto dell'oggetto.
Visible
Questa proprietà, indipendentemente dal fatto che GuiObject e i suoi discendenti saranno renduti.
Il rendimento di singoli componenti di un GuiObject può essere controllato individualmente attraverso le proprietà di trasparenza come GuiObject.BackgroundTransparency , TextLabel.TextTransparency e 1> Class.ImageLabel.ImageTransparency1> .
Quando questa proprietà è false , il GuiObject sarà ignorato dalle strutture di layout come UIListLayout , 1> Class.UIGridLayout1> e 4> Class.UITableLayout4> . In altre parole, lo spazio che l'elemento avrebbe altrimenti occupato nella layout viene utilizz
Campioni di codice
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
Questa proprietà determina l'ordine in cui un GuiObject rende rispetto agli altri.
Per impostazione predefinita, GuiObjects rende in ordine di priorità crescente in cui coloro che hanno valori più bassi vengono visualizzati sotto quelli con valori più alti. Puoi cambiare l'ordine di visualizzazione all'interno di un ZIndex,
Se non sei sicuro di dover aggiungere un elemento tra due elementi esistenti in futuro, è una buona pratica utilizzare multipli di 100 (0 , 100 , 1> 2001> , ecc.). Ciò garantisce uno spazio di rendering order valori che puoi utilizzare per gli elementi in-between altri element
Vedi anche LayoutOrder che controlla l'ordine di sorting di un GuiObject quando viene utilizzato con una struttura di layout come 2>Class.UIListLayout2> o 5>Class.UIGridLayout5> .
Metodi
TweenPosition
Smoothly moves a GUI to a new UDim2 position in the specified time using the specified Enum.EasingDirection and Enum.EasingStyle .
Questa funzione restituirà se il tween si Giocare. Non si eseguirà se un altro tween si sta eseguendo su GuiObject e il parametro di sovrascrittura è falso.
Vedi anche:
- GuiObject:TweenSize() , i tweens a dimensione di un GUI or Intefaccia grafica utente
- GuiObject:TweenSizeAndPosition() , i tweens a dimensione e posizione di un'GUI or Intefaccia grafica utentein tempo reale
Parametri
Dove la GUI dovrebbe muoversi.
La direzione in cui facilitare l'utilizzo della GUI alla fine della posizione.
Lo stile in cui abbassare la GUI alla posizione di fine .
Quanto tempo, in secondi, ci vuole per completare.
Se il tween sostituirà un gemellatiin corso.
Una funzione di callback per essere eseguita quando il tween completa.
Restituzioni
Se il tween si Giocare.
Campioni di codice
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
Ridimensiona rapidamente una GUI in un nuovo UDim2 nel tempo specificato usando il Enum.EasingDirection e il Enum.EasingStyle specificati.
Questa funzione restituirà se il tween si Giocare. Normalmente questo restituirà sempre vero, ma restituirà falso se un altro tween è attivo e Override è impostato su false.
Vedi anche:
- GuiObject:TweenPosition() , tweens a posizione di un GUI or Intefaccia grafica utente
- GuiObject:TweenSizeAndPosition() , i tweens a dimensione e posizione di un'GUI or Intefaccia grafica utentein tempo reale
Parametri
La dimensione che la GUI dovrebbe Ridimensiona.
La direzione in cui facilitare l'uso del GUI alla fine della dimensione della schermata .
Lo stile in cui abbassare la GUI al endSize .
Quanto tempo, in secondi, ci vuole per completare.
Se il tween sostituirà un gemellatiin corso.
Una funzione di callback per essere eseguita quando il tween completa.
Restituzioni
Se il tween si Giocare.
Campioni di codice
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 resizes and moves a GUI to a new UDim2 size and position in the specified time using the specified Enum.EasingDirection and Enum.EasingStyle .
Questa funzione restituirà se il tween si Giocare. Normalmente questo restituirà sempre vero, ma restituirà falso se un altro tween è attivo e Override è impostato su false.
Vedi anche:
- GuiObject:TweenSize() , i tweens a dimensione di un GUI or Intefaccia grafica utente
- GuiObject:TweenPosition() , tweens a posizione di un GUI or Intefaccia grafica utente
Parametri
La dimensione che la GUI dovrebbe Ridimensiona.
Dove la GUI dovrebbe muoversi.
La direzione in cui facilitare l'utilizzo della GUI per endSize e endPosition .
Lo stile in cui facilitare l'uso della GUI fino alla dimensione di finezza e posizione di fine .
Quanto tempo, in secondi, ci vuole per completare.
Se il tween sostituirà un gemellatiin corso.
Una funzione di callback per essere eseguita quando il tween completa.
Restituzioni
Se il tween si Giocare.
Campioni di codice
local frame = script.Parent.Frame
frame:TweenSizeAndPosition(UDim2.new(0, 0, 0, 0), UDim2.new(0, 0, 0, 0))
Eventi
InputBegan
Questo evento si attiva quando un utente inizia ad interagire con il GuiObject tramite un dispositivo di interfaccia uomo-computer (tasto del mouse, inizio del tocco, tastiera del mouse, ecc.).
Il UserInputService ha un evento con lo stesso nome che non è limitato a un singolo elemento UI: UserInputService.InputBegan .
Questo evento si attivera sempre indipendentemente dallo stato del gioco.
Vedi anche:
Parametri
Un InputObject , che contiene dati utili per la richiesta dell'input dell'utente come il type of input , il state of input e il 1> Class.InputObj.Position| coordinate di input1> .
Campioni di codice
-- 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
Questo evento si attiva quando un utente cambia il modo in cui interagisce tramite un dispositivo di interfaccia uomo-corrispettore (Mouse button down, touch begin, keyboard button down, ecc).
Il UserInputService ha un evento con lo stesso nome che non è limitato a un singolo elemento UI: UserInputService.InputChanged .
Questo evento si attivera sempre indipendentemente dallo stato del gioco.
Vedi anche:
Parametri
Un InputObject , che contiene dati utili per la richiesta dell'input dell'utente come il type of input , il state of input e il 1> Class.InputObj.Position| coordinate di input1> .
Campioni di codice
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
L'evento InputEnded si attiva quando un utente smette di interagire tramite un dispositivo dell'interfaccia uomo-corrispettore (Mouse button down, touch begin, keyboard button down, ecc).
Il UserInputService ha un evento con lo stesso nome che non è limitato a un singolo elemento UI: UserInputService.InputEnded .
Questo evento si attivera sempre indipendentemente dallo stato del gioco.
Vedi anche:
Parametri
Un InputObject , che contiene dati utili per la richiesta dell'input dell'utente come il type of input , il state of input e il 1> Class.InputObj.Position| coordinate di input1> .
Campioni di codice
-- 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
L'evento MouseEnter si attiva quando un utente muove il mouse in un elemento GUI .
Per favore, non farti affidare agli x e y argumenti passati da questo evento come modo imbattibile per determinare dove si trova il mouse quando entra in una GUI or Intefaccia grafica utente. Questi coordinatori possono variare anche quando il mouse entra nella GUI tramite lo stesso边 - in particolare quando il mouse entra nella GUI or Intefaccia grafica utenterapidamente. Ciò è dovuto al fatto che questi coordinate indicano la posizione del
Questo evento si attiva anche quando l'elemento GUI rende sotto un altro elemento.
Se desideri tracciare quando il mouse di un utente lascia un elemento GUI, puoi utilizzare l'evento GuiObject.MouseLeave .
Vedi anche:
Parametri
La x screen coordinate del Topo, or mouse as computer mousein pixel, rispetto all'angolo in alto a sinistra della schermata.
La posizione dello schermo del Topo, or mouse as computer mousein pixel, rispetto all'angolo in alto a sinistra dello schermo.
Campioni di codice
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
L'evento MouseLeave si attiva quando un utente muove il mouse fuori da un elemento GUI .
Per favore, non farti affidare agli x e y argumenti passati da questo evento come modo imbattibile per determinare dove si trova il mouse quando lascia un'GUI or Intefaccia grafica utentegrafica utente. Questi coordinatori possono variare anche quando il mouse lascia l'interfaccia GUI or Intefaccia grafica utenteutente tramite lo stesso bordo - in particolare quando il mouse lascia l'elemento rapidamente. Ciò è
Questo evento si attiva anche quando l'elemento GUI rende sotto un altro elemento.
Vedi anche:
Parametri
La x screen coordinate del Topo, or mouse as computer mousein pixel, rispetto all'angolo in alto a sinistra della schermata.
La posizione dello schermo del Topo, or mouse as computer mousein pixel, rispetto all'angolo in alto a sinistra dello schermo.
MouseMoved
Si attiva ogni volta che un utente muove il mouse mentre è all'interno di un elemento GUI . È simile a Mouse.Move , che si attiva indipendentemente dal fatto che il mouse dell'utente sia su un elemento GUI.
Nota, questo evento si attiva quando la posizione del Topo, or mouse as computer mouseviene aggiornata, quindi si attiva ripetutamente mentre viene spostato.
Gli argomenti x e y indicano le coordinate di schermo aggiornate del mouse dell'utente in pixel. Questi possono essere utili per determinare la posizione del Topo, or mouse as computer mousesulla GUI or Intefaccia grafica utente, sullo schermo e sulla Delta se il Topo, or mouse as computer mouseviene tracciato in una variabile globale.
Il codice seguente mostra come determinare l'Vector2 OFFSET del mouse dell'utente rispetto a 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 che questo evento potrebbe non essere attivato esattamente quando il mouse dell'utente entra o esce da un elemento GUI. Pertanto, gli argomenti x e y potrebbero non corrispondere perfettamente alle coordinate degli angoli della GUI or Intefaccia grafica utente.
Vedi anche:
Parametri
La x screen coordinate del Topo, or mouse as computer mousein pixel, rispetto all'angolo in alto a sinistra della schermata.
La posizione dello schermo del Topo, or mouse as computer mousein pixel, rispetto all'angolo in alto a sinistra dello schermo.
MouseWheelBackward
L'evento WheelBackward viene attivato quando un utente fa scorrere la sua ruota del mouse quando il mouse è su un elemento GUI . È simile a Mouse.WheelBackward , che si attiva indipendentemente dal fatto che il mouse sia su un elemento GUI.
Questo evento si attiva semplicemente come un indicatore del movimento in avanti della ruota. Ciò significa che gli argomenti x e y del mouse non cambiano come risultato di questo evento. Questi coordinate vengono modificati solo quando il mouse si muove, che può essere tracciato dall'evento GuiObject.MouseMoved.
Vedi anche:
Parametri
La x screen coordinate del Topo, or mouse as computer mousein pixel, rispetto all'angolo in alto a sinistra della schermata.
La posizione dello schermo del Topo, or mouse as computer mousein pixel, rispetto all'angolo in alto a sinistra dello schermo.
MouseWheelForward
L'evento WheelForward viene attivato quando un utente fa clic con il mouse sulla ruota anteriore quando il mouse è su un elemento GUI . È simile a Mouse.WheelForward , che si attiva indipendentemente dal fatto che il mouse sia su un elemento GUI.
Questo evento si attiva semplicemente come un indicatore del movimento in avanti della ruota. Ciò significa che gli argomenti x e y del mouse non cambiano come risultato di questo evento. Questi coordinate vengono modificati solo quando il mouse si muove, che può essere tracciato dall'evento GuiObject.MouseMoved.
Vedi anche:
Parametri
La x screen coordinate del Topo, or mouse as computer mousein pixel, rispetto all'angolo in alto a sinistra della schermata.
La y coordinate del Topo, or mouse as computer mousedell'utente.
SelectionGained
Questo evento si attiva quando il Gamepad Selector inizia a concentrarsi sul GuiObject .
Se vuoi controllare dal Gamepad seleziona GuiObject.SelectionLost evento.
Quando un'interfaccia guida guadagna il focus di selezione, il valore della proprietà SelectedObject cambia anche per quello che guadagna la selezione. Per determinare quale interfaccia guida ha ottenuto la selezione, controlla il valore di questa Proprietà.
Campioni di codice
local guiObject = script.Parent
local function selectionGained()
print("The user has selected this button with a gamepad.")
end
guiObject.SelectionGained:Connect(selectionGained)
SelectionLost
Questo evento si attiva quando il Gamepad Selector smette di concentrarsi sul GUI .
Se vuoi controllare dal Gamepad seleziona inizia a concentrarsi sull'elemento GUI, puoi utilizzare l'evento GuiObject.SelectionGained .
Quando un'interfaccia utente perde il focus di selezione, il valore della proprietà SelectionObject cambia in modo da zero o all'elemento GUI che ottiene il focus di selezione. Per determinare quale interfaccia utente ha ottenuto la selezione, o se nessuna interfaccia utente è selezionata, controlla il valore di questa Proprietà.
Campioni di codice
local guiObject = script.Parent
local function selectionLost()
print("The user no longer has this selected with their gamepad.")
end
guiObject.SelectionLost:Connect(selectionLost)
TouchLongPress
L'evento TouchLongPress attiva dopo un breve momento quando il giocatore tiene il dito sull'elemento UI utilizzando un Dispositivoabilitato al touch. Esso attiva con un table di Dat
Poiché questo evento richiede solo un dito, questo evento può essere simulato in Studio utilizzando l'emulatore e il Topo, or mouse as computer mouse.
Parametri
Un array di Vector2 che descrive le posizioni relative dei dita coinvolti nel gesto.
Un Enum.UserInputState che descrive lo stato del gesto:
- Inizia i fuochi una volta all'inizio del gesto (dopo il breve ritardo)
- Cambia i fuochi se il giocatore muove il dito mentre premere
- Fuori i fuochi una volta alla fine del gesto quando rilasciano il dito.
Campioni di codice
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
L'evento TouchPan attiva quando il giocatore muove il dito sull'elemento UI utilizzando un Dispositivoabilitato al touch. Attiva poco prima che GuiObject.TouchSwipe , e non attiva con GuiObject.TouchTap . Questo evento è utile per consentire al giocatore di manipolare la posizione degli elementi UI sullo schermo.
Questo evento si attiva con una tabella di Vector2 che descrivono le posizioni di schermo relative dei dita coinvolte nel gesto. Inoltre, si attiva più volte: Enum.UserInputState.Begin dopo un breve ritardo, Enum.UserInputState.Change quando il giocatore muove il dito durante il gesto e infine con
Questo evento non può essere simulato in Studio usando l'emulatore e il Topo, or mouse as computer mouse; devi avere un dispositivo abilitato al tocco reale per avviarlo.
Parametri
Un'arraya Lua di Vector2 oggetti, ciascuno dei quali indica la posizione di tutti i datori coinvolti nel gesto.
Indica quanto è andato il gesto della panella dal suo punto di partenza.
Indica quanto rapidamente il gesto viene eseguito in ciascuna dimensione.
Indica lo stato del Enum.UserInputState del gesto.
Campioni di codice
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
L'evento TouchPinch attiva quando il giocatore usa due dita per fare una pennellata o un trascinamento del gesto sull'elemento UI utilizzando un Dispositivoabilitato al tocco. Un pennellata avviene quando due o più dita si avvicinano l'una
Questo evento si attiva con una tabella di Vector2 che descrive le posizioni di schermo relative dei dita coinvolte nel gesto. Inoltre, si attiva più volte: Enum.UserInputState.Begin dopo un breve ritardo, enum.UserInputState.Change</
Poiché questo evento richiede almeno due dita, non è possibile simularlo in Studio utilizzando l'emulatore e il Topo, or mouse as computer mouse; devi avere un Dispositivoabilitato al tocco reale.
Parametri
Un' array Lua di Vector2 oggetti, ciascuno dei quali indica la posizione di tutti i dita coinvolti nel gesto di pizzichio.
Un float che indica la differenza dall'inizio del gesto di pizzamento.
Un fluttua che indica quanto rapidamente si sta svolgendo il gesto del pizzico.
Indica lo stato del Enum.UserInputState del gesto.
Campioni di codice
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
L'evento TouchRotate attiva quando il giocatore usa due dita per fare un palloncino o un'azione di trazione sull'elemento UI utilizzando un Dispositivoabilitato alla rotazione. La rotazione avviene quando l'angolo della linea tra due dita cambia. Questo evento si attiva in concomitanza con GuiObject.TouchPan . Questo evento è utile per consentire al giocatore di manipolare la rotazione degli element
Questo evento si attiva con una tabella di Vector2 che descrivono le posizioni di schermo relative dei dita coinvolte nel gesto. Inoltre, si attiva più volte: Enum.UserInputState.Begin dopo un breve ritardo, Enum.UserInputState.Change quando il giocatore muove un dito durante il gesto e infine con
Poiché questo evento richiede almeno due dita, non è possibile essere simulato in Studio utilizzando l'emulatore e il Topo, or mouse as computer mouse; devi avere un Dispositivoabilitato al tocco reale.
Parametri
Un'arraya Lua di Vector2 oggetti, ciascuno dei quali indica la posizione di tutti i datori coinvolti nel gesto.
Un float che indica quanto la rotazione sia andata dal punto di partenza del gesto.
Un fluttua che indica quanto rapidamente il gesto viene eseguito.
Indica lo stato del Enum.UserInputState del gesto.
Campioni di codice
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
L'evento TouchSwipe si attiva quando il giocatore esegue un gesto di swipe sull'elemento UI utilizzando un Dispositivoabilitato al touch. Si attiva con la direzione del gesto (Up, Down, Left o Right) e il numero di punti touch coinvolti nel gesto. I gesti di swipe sono spesso utilizzati per modificare le schede negli UIs del mobile.
Poiché questo evento richiede solo un dito, può essere simulato in Studio utilizzando l'emulatore e il Topo, or mouse as computer mouse.
Parametri
Un Enum.SwipeDirection che indica la direzione della direzione di spostamento (su, giù, a sinistra o a destra).
Il numero di punti di tocco coinvolti nel gesto (di solito 1).
Campioni di codice
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
L'evento TouchTap viene attivato quando il giocatore esegue un tap gesto sull'elemento UI utilizzando un Dispositivoabilitato al touch (un tap è un singolo tocco senza alcuna movimento coinvolto (un'ulteriore premuta avrebbe attivato GuiObject.TouchLongPress
Poiché questo evento richiede solo un dito, può essere simulato in Studio utilizzando l'emulatore e il Topo, or mouse as computer mouse.
Parametri
Campioni di codice
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)