Nei giochi moderni il supporto alla vibrazione del gamepad di giocco (spesso indicata con “Rumble”) è di fondamentale importanza per la giocabilità e l’accessibilità. Il giocatore è abituato a sentire tra le proprie mani il controller vibrare in diverse situazioni, con più o meno intensità.
Attraverso il potentissimo asset Rewired (disponibile sull’Asset Store di Unity qui) è possibile gestire la vibrazione in modo molto semplice. Vi sono però alcune considerazioni da fare a riguardo:
- Il controller non deve vibrare se si sta usando la tastiera o qualsiasi altro controller
- I controller moderni hanno almeno 2 motori (destra/sinistra)
- E’ bene resettare sempre la vibrazione precedente prima di eseguire quella successiva
- E’ possibile impostare livelli di vibrazione differente rispetto al feedback da dare al giocatore
- Rewired fornisce un’unica interfaccia al Gamepad e alla sua vibrazione rispetto alle maggiori console in circolazione (Nintendo Switch inclusa, a mezzo plugin dedicato)
Di seguito uno script che racchiude tutto quando indicato qui sopra in modo molto semplice in quanto utilizza unicamente 2 parametri: il livello di vibrazione (valore da 0 a 1) e la durata in secondi.
public void SetVibration(float level, float duration)
{
Controller controller = playerInput.controllers.GetLastActiveController();
if (controller != null)
{
if (controller.type == ControllerType.Joystick)
{
playerInput.StopVibration();
try
{
playerInput.SetVibration(0, level, duration);
playerInput.SetVibration(1, level, duration);
}
catch { }
}
}
}
In questo nostro articolo è possibile invece trovare la risoluzione ad alcuni dei più comuni problemi di abilitazione della vibrazione sul controller XBox per Windows.


