Après quelques galères j’ai enfin réussi à faire fonctionner les joysticks et boutons de la Vita avec Unity.
Les boutons
La définition est la suivante :
- × KeyCode.JoystickButton0
- ○ KeyCode.JoystickButton1
- □ KeyCode.JoystickButton2
- △ KeyCode.JoystickButton3
- L KeyCode.JoystickButton4
- R KeyCode.JoystickButton5
- SELECT KeyCode.JoystickButton6
- START KeyCode.JoystickButton7
- up KeyCode.JoystickButton8
- right KeyCode.JoystickButton9
- down KeyCode.JoystickButton10
- left KeyCode.JoystickButton11
Jusque là rien de sorcier, un code simple dans l’update permet de récupérer le bouton sur lequel on appuie pour effectuer une action.
if (Input.GetKeyDown(KeyCode.JoystickButton8))
{
transform.Translate(new Vector3(0, 0, speed) * Time.deltaTime);
}
Dans ce code on déplace un objet (d’où le Translate) lors de l’appuie sur le bouton 8 (donc quand on va ver le haut avec le Pad de la Vita).
Les Joysticks !
De ce coté la c’était un poil plus complexe, mais voici la solutions. Cliquez sur « Edit -> Projet Setings – > Input » et vous verrez apparaitre sur la droite un panel dans lequel nous définirons nos JoySticks et leurs paramètres.

Définissez alors vos 4 axes en respectant bien les paramètres qui sont sur la capture. Vous pouvez par contre les nommer différemment, c’est ce nom qui vous permettra de récupérer les données dans le code.


il faut bien faire attention aux paramètres « Dead, Sensivity et à l’inversion sur les Y ».
Tous les axes proviennent du Joystick sur la PSVita, les autres 2,3,… servent pour d’autres périphériques. Chaque axe est assigné a un Axe (X pour l’horizontale sur le joystick de gauche, 5eme axe sur le Y de celui de droite… tout ceci est défini dans la documentation officielle Sony.
Pour récupérer la valeur il faut juste mettre dans le code (ici pour l’axe X du Joy de gauche) :
valeur = Input.GetAxisRaw(« JoyLX ») * speed;
transform.Translate(new Vector3(valeur, 0, 0) * Time.deltaTime);
Et voila, maintenant que l’on sait faire bouger un objet on va pouvoir avancer sérieusement :!