Retrouvez les premières méthodes statiques de la classe Input de Unity
La classe Input est un point central dans l'API de Unity, car elle permet de gérer l'ensemble du sytème d'entrée utilisateur.
Comprenez par là l'utilisation du clavier, de la souris, ou encore d'un joystick. Mais pas que !
On peut aussi détecter et récupérer les valeurs de l'accéléromètre d'un smartphone .
Méthodes de gestion du clavier
On retrouve ici les méthodes suivantes:
- GetKey: appui maintenu
- GetKeyDown: on enfonce la touche
- GetyKeyUp: on relâche la touche
Toutes ces méthodes ont le même type de signature !
En effet chacune d'elle, attend en paramètre la touche clavier que vous souhaitez surveiller. Dans Unity, cela prend la forme d'un Objet de type KeyCode.
KeyCode.Space
KeyCode.A
KeyCode.UpArrow...
Ainsi si on veut surveiller par exemple, l'appui maintenu sur la touche V du clavier, il faudra écrire en C#:
if(Input.GetKey(KeyCode.V){
//le code que vous souhaitez !
}
Pour que cela fonctionne tout le temps, il faut placer ce bout de code dans la méthode Update d'un script qui hérite bien sûr de MonoBehaviour.
void Update()
{
if(Input.GetKey(KeyCode.V){
//le code que vous souhaitez !
Debug.Log(" appui sur touche V ! On lui fait faire quoi à notre perso ?");
}
}
L'utilisation des méthodes GetKeyDown et GetKeyUp est similaire.
Méthodes de gestion de la souris
On va ici retrouver la même idée que pour les touches clavier, à savoir trois méthodes. En effet pour les boutons de la souris, on doit pouvoir savoir si le bouton est enfoncé, maintenu, juste enfoncé, ou relâché.
- GetMouseButton: bouton maintenu enfoncé
- GetMouseButtonDown: bouton enfoncé
- GetMouseButtonUp: bouton relâché
Mais sur une souris, on a aussi plusieurs boutons possibles. Pour une souris simple nous avons le clic gauche, clic centre et clic droite.
Donc pour détecter quel bouton est utilisé, l'API de Unity propose d'utiliser un entier (0, 1, 2) pour indiquer l'indice du bouton.
Ainsi très facilement en C# nous écrirons:
void Update()
{
if(Input.GetMouseButton(0){
//le code que vous souhaitez !
Debug.Log(" clic gauche souris !");
}
if(Input.GetMouseButton(1){
//le code que vous souhaitez !
Debug.Log(" clic droit souris !");
}
if(Input.GetMouseButton(2){
//le code que vous souhaitez !
Debug.Log(" clic milieu souris !");
}
}
Il reste encore beaucoup à traiter sur les Input, aussi restez connectés.ées .