La maggior parte delle sessioni di Roblox vengono giocate su dispositivi mobili, quindi è importante considerare l'orientamento del dispositivo mobile e altri fattori multi‑piattaforma quando si progetta un gioco per un ampio pubblico.
Per semplificare gli input multi‑piattaforma, incluso l'interazione dei giocatori con i pulsanti virtuali, Roblox fornisce il Sistema di Azione Input per definire azioni come "salta", "sprinta" o "spara" e impostare binding per più input hardware per attivare quelle azioni.
Roblox supporta anche funzionalità mobili native come il feedback aptico, gesti touch come TouchSwipe e TouchPinch, o funzionalità di accelerometro e giroscopio su dispositivi AccelerometerEnabled e GyroscopeEnabled.
Rilevamento del tipo di input
Nello sviluppo multi‑piattaforma, è importante determinare e rispondere al tipo di PreferredInput che un giocatore sta utilizzando, normalmente per garantire che gli elementi dell'interfaccia utente come i pulsanti e i menu sullo schermo funzionino elegantemente e supportino l'interazione su diversi dispositivi.
Ad esempio, un dispositivo abilitato al tocco presuppone che il tocco sia l'input predefinito e che i pulsanti touch possano apparire per le azioni, ma un giocatore potrebbe scegliere di connettere un gamepad bluetooth. In questo caso, il tocco rimane un input valido, ma puoi presumere che il giocatore voglia passare al gamepad connesso come tipo di input primario e possibilmente utilizzare il tocco come input secondario per l'interfaccia utente sullo schermo.
Consulta il rilevamento del tipo di input per ulteriori informazioni.
Orientamento del dispositivo
Per impostazione predefinita, i giochi Roblox vengono eseguiti in modalità orizzontale, consentendo al gioco di passare tra "sinistra" e "destra" orizzontale mentre il dispositivo del giocatore ruota. Tuttavia, i giochi possono essere bloccati su un determinato orientamento, se desiderato.
Ci sono cinque diverse modalità di orientamento, che includono due modalità basate sul sensore e tre modalità bloccate.¹ Ognuna di queste può essere impostata come orientamento predefinito tramite StarterGui.ScreenOrientation, accessibile tramite la finestra Proprietà di Studio.
| Modalità Sensore | |
|---|---|
| LandscapeSensor | La impostazione predefinita di Roblox in cui il gioco appare sempre in modalità orizzontale (nessuna modalità verticale) e il dispositivo rileva il proprio orientamento fisico per garantire che la visualizzazione del gioco sia sempre orientata verso l'alto. |
| Sensor | Il dispositivo rileva il proprio orientamento fisico per garantire che la visualizzazione del gioco sia sempre orientata verso l'alto, passando tra modalità orizzontale e verticale secondo necessità. |
| Modalità Bloccate | |
| LandscapeLeft | Su dispositivi con una barra di navigazione/home virtuale, la sua area touch si trova in basso rispetto al display. Su dispositivi con un pulsante home fisico, il pulsante home si trova a sinistra rispetto al display. |
| LandscapeRight | Su dispositivi con una barra di navigazione/home virtuale, la sua area touch si trova in basso rispetto al display. Su dispositivi con un pulsante home fisico, il pulsante home si trova a destra rispetto al display. |
| Portrait | Su dispositivi con una barra di navigazione/home virtuale, la sua area touch si trova in basso rispetto al display. Su dispositivi con un pulsante home fisico, il pulsante home si trova sotto il display. |
Oltre alla proprietà predefinita StarterGui.ScreenOrientation, puoi cambiare l'orientamento durante il gioco tramite PlayerGui.ScreenOrientation. Questo può essere utile quando un gioco ha bisogno di forzare un orientamento, come nel caso di bloccare la visualizzazione su Portrait per un minigioco.
Il seguente codice in un LocalScript imposta l'orientamento dello schermo su verticale dopo un breve ritardo:
LocalScript - Cambiare L'Orientamento dello Schermo in Verticalelocal Players = game:GetService("Players")local player = Players.LocalPlayerlocal playerGui = player.PlayerGuitask.wait(5)playerGui.ScreenOrientation = Enum.ScreenOrientation.Portrait
Infine, puoi rilevare i cambiamenti nell'orientamento dello schermo durante il gioco ascoltando le modifiche sui valori della proprietà PlayerGui.CurrentScreenOrientation.
LocalScript - Rilevare Cambiamenti nell'Orientamento dello Schermo
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player.PlayerGui
local function onOrientationChange()
print("Orientamento cambiato a", playerGui.ScreenOrientation)
end
playerGui:GetPropertyChangedSignal("ScreenOrientation"):Connect(onOrientationChange)
Feedback aptico
La maggior parte dei dispositivi mobili ha motori incorporati per fornire feedback aptico. Aggiungere vibrazioni e tremori può migliorare notevolmente l'esperienza del giocatore e fornire feedback sottile oltre a quello visivo o audio.
Roblox supporta l'aptico per dispositivi abilitati al feedback aptico, inclusi la maggior parte degli iPhone, Pixel e dispositivi Samsung Galaxy. Il feedback aptico è gestito tramite le istanze HapticEffect che possono essere impostate su un tipo specifico di Type come GameplayCollision o UIClick.
Una volta che un HapticEffect è in atto, puoi avviarlo tramite il metodo Play(), ad esempio:
local Workspace = game:GetService("Workspace")local effect = Instance.new("HapticEffect")effect.Type = Enum.HapticEffectType.GameplayExplosioneffect.Parent = Workspace-- Riproduci l'effetto apticoeffect:Play()