Eseguire la vibrazione del gamepad in un progetto Unity tramite Rewired

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.

Copyright © Desdinova ® / PIVA 03799780162 / Non è una testata giornalistica.
Tutti i diritti riservati ai legittimi proprietari, anche ove non citati.