Posizionare e dimensionare oggetti UI

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

A meno che gli oggetti UI non siano sotto il controllo di una struttura di layout o di un modificatore/ vincolo di dimensione, hai il completo controllo sul loro posizionamento e dimensione. Puoi anche impostare l'ordine di sovrapposizione Z‑index in cui gli oggetti si sovrappongono.

Proprietà principali

Tutti gli GuiObjects condividono un insieme fondamentale di proprietà per posizionare, dimensionare, ancorare e stratificare all'interno di un contenitore sullo schermo o in gioco.

Posizione

La proprietà Position è un insieme di coordinate UDim2 che posiziona l'oggetto lungo gli assi X e Y. Un UDim2 è rappresentato sia da valori Scale che Offset per ciascun asse:

  • I valori Scale rappresentano una percentuale della dimensione del contenitore lungo l'asse corrispondente, additiva a qualsiasi valore Offset.
  • I valori Offset rappresentano quanti pixel spostare l'oggetto lungo l'asse corrispondente, additiva a qualsiasi valore Scale.

Per modificare la posizione di un GuiObject selezionato, fai clic sul campo Position nella finestra Properties e inserisci un nuovo insieme di coordinate UDim2.

Dimensione

La proprietà Size è un insieme di coordinate UDim2 che dimensiona l'oggetto lungo gli assi X e Y. Un UDim2 è rappresentato sia da valori Scale che Offset per ciascun asse:

  • Scale — Valori che rappresentano una percentuale della dimensione del contenitore lungo l'asse corrispondente, additiva a qualsiasi valore di Offset.
  • Offset — Valori che rappresentano la dimensione in pixel dell'oggetto lungo l'asse corrispondente, additiva a qualsiasi valore di Scale.

Per modificare la dimensione di un GuiObject selezionato, fai clic sul campo Size nella finestra Properties e inserisci un nuovo insieme di coordinate UDim2.

AnchorPoint

La proprietà AnchorPoint definisce il punto di origine da cui l'oggetto cambia posizione e dimensione. I valori predefiniti di AnchorPoint sono (0, 0) che posizionano l'ancora nell'angolo in alto a sinistra dell'oggetto.

I valori di AnchorPoint sono una frazione da 0 a 1, relativa alla dimensione dell'oggetto, il che significa che un oggetto con valori di AnchorPoint di (0.5, 0.5) posiziona il punto di ancoraggio a metà strada (50%) attraverso l'oggetto sia orizzontalmente che verticalmente, e qualsiasi modifica alla sua posizione o dimensione sposta e scala verso l'esterno da questo punto.

Per visualizzare e modificare il punto di ancoraggio di un GuiObject selezionato:

  1. Nella finestra Properties, fai clic all'interno del campo AnchorPoint.

  2. Inserisci un nuovo insieme di coordinate Vector2 e premi Enter.

ZIndex

La proprietà ZIndex definisce l'ordine degli strati in cui GuiObjects vengono renderizzati e si sovrappongono l'uno all'altro. Se desideri creare nuovi strati di rendering, devi impostare la proprietà ZIndex su valori interi positivi o negativi diversi per ciascun oggetto.

Per i contenitori UI come ScreenGui, il comportamento predefinito di ZIndexBehavior rende sempre i figli sopra i loro genitori, e il ZIndex di ciascun figlio viene utilizzato per decidere l'ordine in cui viene renderizzato rispetto agli altri.

Per modificare lo ZIndex di un oggetto, trova ZIndex nella finestra Properties e inserisci un nuovo valore intero.

Strutture di layout

Le strutture di layout ti consentono di organizzare e visualizzare rapidamente GuiObjects, ad esempio in un elenco orizzontale o verticale, in una griglia di piastrelle di dimensioni uniformi, in una sequenza di pagine e altro ancora. I layout sovrascrivono o influenzano tipicamente il posizionamento/dimensione degli oggetti sotto il loro controllo.

LayoutDescrizione
ElencoUIListLayout posiziona i GuiObjects fratelli in righe orizzontali o colonne verticali all'interno del loro contenitore genitore.
GrigliaUIGridLayout posiziona i GuiObjects fratelli in una griglia di celle uniformi della stessa dimensione all'interno del loro contenitore genitore.
TabellaUITableLayout posiziona i GuiObjects fratelli e i loro figli in formato tabella.
PaginaUIPageLayout organizza i suoi GuiObjects fratelli in pagine uniche a cui puoi passare tramite scripting.

Fattori cross-platform

Roblox è intrinsecamente cross‑platform, poiché i giocatori possono scoprire e unirsi ai giochi sul loro telefono o tablet, per poi continuare da dove avevano interrotto sul loro PC o console. Dovresti progettare i tuoi giochi Roblox per essere accessibili e divertenti su tutte le piattaforme che scegli di supportare, invece di ottimizzare per una piattaforma e trascurare le altre.

Zone riservate

Su dispositivi mobili, i controlli predefiniti occupano una porzione degli angoli in basso a sinistra e in basso a destra dello schermo. Quando progetti l'interfaccia utente di un gioco, evita di posizionare informazioni importanti o pulsanti virtuali in queste zone.

Zone per il pollice

La maggior parte dei giocatori mobili utilizza due pollici — uno sul joystick virtuale e uno sul pulsante di salto. A seconda delle dimensioni fisiche del dispositivo e delle mani del giocatore, raggiungere troppo lontano dagli angoli inferiori diventa scomodo o impossibile, quindi dovresti evitare di posizionare pulsanti frequentemente utilizzati al di fuori delle zone facilmente raggiungibili.


Ricorda che le zone per il pollice comode differiscono tra telefoni e tablet perché i tablet hanno uno schermo più grande. Un pulsante posizionato al 40% sotto il bordo superiore dello schermo è raggiungibile su un telefono ma quasi irraggiungibile su un tablet.

Un approccio affidabile sia su telefoni che su tablet è il posizionamento relativo di pulsanti personalizzati vicino ai controlli frequentemente utilizzati come il pulsante di salto predefinito, posizionandoli a portata di mano.

Il seguente codice, posizionato in uno script lato client all'interno di StarterPlayerScripts, recupera la posizione del pulsante di salto e crea un pulsante personalizzato 20 pixel a sinistra.

Script Client - Pulsante Personalizzato Vicino al Pulsante di Salto
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
if UserInputService.TouchEnabled then
-- Aspetta che il pulsante di salto sia completamente caricato
while not (playerGui:FindFirstChild("JumpButton", true) and playerGui:FindFirstChild("JumpButton", true).IsLoaded) do
task.wait()
end
local jumpButton = playerGui:FindFirstChild("JumpButton", true)
-- Posiziona un nuovo pulsante personalizzato a sinistra del pulsante di salto
local customButton = Instance.new("ImageButton")
customButton.AnchorPoint = Vector2.new(1, 1)
customButton.Size = UDim2.fromOffset(jumpButton.Size.X.Offset * 0.8, jumpButton.Size.Y.Offset * 0.8)
customButton.Position = jumpButton.Position + UDim2.fromOffset(-20, jumpButton.Size.Y.Offset)
customButton.Parent = jumpButton.Parent
else
warn("Il dispositivo non è abilitato al tocco o Studio non sta emulando un dispositivo abilitato al tocco!")
end

UI basata sul contesto

Lo spazio dello schermo è limitato sui dispositivi mobili, quindi dovresti mostrare solo le informazioni più vitali durante il gameplay attivo. Ad esempio, se il tuo gioco include un'azione di input speciale per aprire porte e forzieri, non ha senso mostrare costantemente un pulsante "apri" sullo schermo. Invece, utilizza un prompt di prossimità o un metodo simile per accettare input solo quando il personaggio si avvicina a una porta o a un forziere.

Pulsante personalizzato che visualizzi solo quando il personaggio è vicino a una porta o a un forziere
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.