Deux systèmes d’entrée
Fait partie de la section Créer de vrais jeux du Journey Unity de Coddy. Leçon 43 sur 56.
Unity propose deux façons de lire les entrées du clavier et de la souris. Celle que vous avez utilisée jusqu’ici est le gestionnaire d’entrées : la classe Input avec GetKey, GetAxis et GetButtonDown, ainsi que les axes et boutons nommés dans Project Settings > Input Manager. La plus récente est le package Input System (com.unity.inputsystem). Ses scripts commencent par using UnityEngine.InputSystem;, et il lit les périphériques sous forme d’objets, tels que Keyboard.current et Mouse.current, et par l’intermédiaire d’actions : des actions nommées effectuées par le joueur, comme Move et Jump, chacune associée à des touches, des sticks et des boutons.
Le choix du système utilisé par un projet se fait dans les paramètres Player : Edit > Project Settings > Player > Other Settings > Active Input Handling, avec trois options : Input Manager (Old), Input System Package (New) et Both. Un nouveau projet Unity 6 démarre avec Input System Package (New), et dans ce cas, chaque appel à la classe Input déclenche une InvalidOperationException indiquant que vous lisez les entrées via UnityEngine.Input alors que le projet utilise le package Input System. C’est pourquoi les leçons précédentes vous ont demandé de choisir Both. Pour modifier ce paramètre, vous devez redémarrer l’éditeur, ce que Unity vous propose de faire.
Unity 6 démarre avec le nouveau système, car une seule API permet de gérer les claviers, les souris, les manettes, les écrans tactiles et les contrôleurs XR, et parce que les actions permettent de ne pas intégrer les touches dans le code : un script lit l’action Jump, et la même ligne fonctionne pour la barre d’espace, le bouton A d’une manette ou un bouton à l’écran d’un téléphone, ainsi que pour un joueur qui remappe la touche. L’ancien gestionnaire d’entrées reste disponible pour les projets plus anciens. La vue de jeu de Coddy se comporte comme Both, de sorte que les touches, les clics et le pavé du téléphone (flèches et Jump) sont transmis aux deux systèmes. Le reste de ce chapitre utilise l’Input System.
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Créer de vrais jeux
1Texte à l’écran
Canvas et texteAfficher le scoreFormater les nombresUn compte à reboursRécapitulatif : compteur de vitesse4Scènes et niveaux
Charger une scèneRedémarrer le niveauNiveau suivantConserver entre les scènesRécapitulatif : sélection du niveau7Contrôle du temps
Mettre en pause avec timeScaleRalentiTemps non mis à l’échelleRécapitulatif : Bullet Time10Projet : jeu de plateforme en 3D
Le parcoursPlateformes mobiles2Boutons et écrans
Boutons et onClickLambdasRelier les éléments dans l’InspectorActiver et désactiver les panneauxBarres de santéRécapitulatif : boutique d’améliorations5Sauvegarder avec PlayerPrefs
Enregistrer un nombreCharger avec une valeur par défautMeilleur scoreEnregistrer les paramètresRécapitulatif : les pièces à la banque3Le gestionnaire du jeu
Un seul script gère le jeuLe SingletonLes états du jeuBasculer selon l’étatRécapitulatif : gestionnaire de manche6Projet : course sans fin
Trois voiesObstacles en vue9Le nouveau système d’entrée
Deux systèmes d’entréeClavier et sourisAppuyé pendant cette frameActions d’entréeRécapitulatif : changement de système d’entrée