L’interaction avec le clavier est cruciale dans les jeux vidéo pour un contrôle précis.
Une mauvaise gestion des entrées peut entraîner des frustrations et diminuer l’expérience utilisateur.
Cet article explore comment utiliser Unity et la classe Input pour optimiser les interactions clavier.
Créez votre premier jeu 3D en C# avec Unity, étape par étape.
L’interaction avec le clavier est essentielle dans les jeux vidéo pour permettre aux joueurs de contrôler des personnages, naviguer dans des menus, ou interagir avec l’environnement. Unity propose des méthodes intégrées pour capter les entrées clavier via la classe Input, qui détecte les actions de l’utilisateur.
Cette classe est au cœur de la gestion des interactions utilisateur et fournit une large gamme de fonctionnalités pour vérifier quelles touches sont pressées et à quel moment.
Commençons par nous familiariser à la classe Input . Il s’agit d’une classe statique qui permet de capturer les interactions provenant du clavier , de la souris , et même des manettes de jeu . Cette classe est au cœur de la gestion des interactions utilisateur et fournit une large gamme de fonctionnalités pour vérifier quelles touches sont pressées et à quel moment.
Voici les principales méthodes de la classe Input :
- GetKey
Elle vérifie si une touche est maintenue enfoncée. Elle renvoie true tant que la touche est pressée . En voici un exemple :
usingUnityEngine;
publicclassCubeDeplacement : MonoBehaviour {
voidUpdate() {
if (Input.GetKey(KeyCode.W)) {
Debug.Log("La touche W est maintenue enfoncée");
}
}
}
- GetKeyDown
Elle détecte le moment où une touche est pressée une seule fois. Elle ne renvoie true que sur la première frame où la touche est pressée .
usingUnityEngine;
publicclassCubeDeplacement : MonoBehaviour {
voidUpdate() {
if (Input.GetKeyDown(KeyCode.Space)) {
Debug.Log("La touche Espace a été pressée");
}
}
}
- GetKeyUp
Elle détecte quand une touche est relâchée . Cette méthode est utile pour savoir quand une action doit se terminer.
usingUnityEngine;
publicclassCubeDeplacement : MonoBehaviour {
voidUpdate() {
if (Input.GetKeyUp(KeyCode.Escape)) {
Debug.Log("La touche Échap a été relâchée");
}
}
}
- GetAxis pour un Déplacement Fluide
GetAxis renvoie une valeur comprise entre -1 et 1 , ce qui permet de gérer les déplacements de manière plus fluide et interpolée. Elle est utile pour des déplacements doux, notamment avec des manettes de jeu ou des touches comme WASD ou les flèches directionnelles .
En combinant cette nouvelle connaissance à celles acquises précédemment, nous pouvons écrire du code permettant à un cube de se déplacer dans les quatre directions avec des mouvements fluides :
usingUnityEngine;
publicclassCubeDeplacement : MonoBehaviour {
privatefloatspeed = 5f;
voidUpdate() {
floatmoveHorizontal = Input.GetAxis("Horizontal"); // Gauche-droite
floatmoveVertical = Input.GetAxis("Vertical"); // Avant-arrière
Vector3 movement = newVector3(moveHorizontal, 0, moveVertical);
transform.Translate(movement * speed * Time.deltaTime);
}
}
Dans le script ci-dessus, Horizontal gère les mouvements gauche-droite tandis que Vertical gère les mouvements avant-arrière. Le déplacement est lissé grâce à GetAxis qui donne une transition douce entre -1 et 1. Ajoutez ce script à votre objet cube puis lancez Unity pour tester.
- GetAxisRaw pour des Déplacements Immédiats
Contrairement à GetAxis, GetAxisRaw renvoie une valeur brute ( soit -1, 0, ou 1 ), ce qui signifie que le mouvement sera instantané, sans interpolation. Reprenons le script précédent mais à présent avec GetAxisRaw :
usingUnityEngine;
publicclassCubeDeplacement : MonoBehaviour {
privatefloatspeed = 5f;
voidUpdate() {
floatmoveHorizontal = Input.GetAxisRaw("Horizontal"); // Gauche-droite
floatmoveVertical = Input.GetAxisRaw("Vertical"); // Avant-arrière
Vector3 movement = newVector3(moveHorizontal, 0, moveVertical);
transform.Translate(movement * speed * Time.deltaTime);
}
}
Avec GetAxisRaw , les mouvements du cube seront immédiats, sans transition progressive. Cela peut être utile pour des contrôles plus réactifs, notamment dans des jeux d’action où la précision est essentielle.
Maintenant que vous avez exploré l’interaction avec le clavier, l’étape suivante consiste à maîtriser l’interaction avec la souris . Unity propose également des outils pour capturer les clics de souris et détecter la position du curseur, utile pour créer des interfaces interactives et des jeux où la souris joue un rôle important.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment Unity gère-t-il les entrées clavier ?
Quelles sont les méthodes principales de la classe Input ?
Comment utiliser GetAxis pour un déplacement fluide ?
Quand utiliser GetAxisRaw par rapport à GetAxis ?
Comment configurer des axes de contrôle dans Unity ?
Conclusion
L’interaction clavier est cruciale pour une expérience de jeu engageante. Comment allez-vous intégrer ces techniques dans vos futurs projets Unity ?