Vous souhaitez animer un personnage en Unity, mais vous êtes confronté à des mouvements saccadés et une orientation incorrecte.
Ces problèmes peuvent frustrer les joueurs, rendant le jeu moins agréable et difficile à contrôler.
Cet article vous guide à travers les étapes pour programmer un déplacement fluide et efficace de votre personnage en Unity 2D, en optimisant le script et en utilisant des techniques comme le flip de sprite.
Devenez expert en animation 2D et design de niveaux avec Unity.
Pour animer un personnage dans Unity, il est essentiel de bien gérer son déplacement. Que ce soit pour un jeu en 2D ou en 3D, le mouvement permet d’interagir dynamiquement avec l’environnement. L’exemple suivant montre comment déplacer un personnage dans un projet Unity 2D à l’aide du code C#.
Déplacement personnage Unity en C#
Pour configurer le déplacement de notre personnage, nous utiliserons un script à nommer « RobotController » qui lira les entrées du joueur (les touches de direction). Voici la logique de ce script :
usingUnityEngine;
publicclassRobotController : MonoBehaviour {
[SerializeField] floatspeed = 8f; // Vitesse de déplacement du personnage
voidUpdate() {
// Mouvement horizontal du personnage
floataxisH = Input.GetAxis("Horizontal");
// Déplacement en fonction de l'input et de la vitesse
transform.Translate(Vector2.right * axisH * speed * Time.deltaTime);
}
}
Gestion d’un déplacement en 2D
Dans cette partie du code, le personnage se déplace horizontalement selon les entrées du joueur via l’axe horizontal (touches fléchées ou A/D). La vitesse de déplacement est contrôlée par la variable speed. La méthode Translate est utilisée pour déplacer le personnage à gauche ou à droite en multipliant la direction par la vitesse et Time.deltaTime pour garantir un mouvement fluide, indépendant de la performance de la machine.
Vous pouvez déjà lancer Unity et tester.
A présent, nous allons utiliser la technique du flip pour améliorer le déplacement du robot. Le flip est une technique simple mais cruciale dans les jeux 2D. Lorsque votre personnage se déplace dans une direction opposée (de droite à gauche), au lieu de créer une animation ou un sprite séparé, vous pouvez simplement inverser le sprite actuel sur l’axe horizontal. Cela évite de dupliquer des ressources graphiques tout en maintenant l’apparence correcte du personnage.
Voici comment nous l’introduisons dans notre code :
publicclassRobotController : MonoBehaviour {
[SerializeField] floatspeed = 8f;
privateboolisLeft =
false; // Booléen pour savoir si le personnage se déplace vers la gauche
privateSpriteRenderer
sp; // Référence au SpriteRenderer pour gérer le flip du sprite
privatevoidStart() {
sp = GetComponent(); // Initialisation du SpriteRenderer
}
voidUpdate() {
floataxisH = Input.GetAxis("Horizontal");
transform.Translate(Vector2.right * axisH * speed * Time.deltaTime);
// Flip du sprite
if (axisH < 0)
isLeft =
true; // Si l'input est négatif, le personnage se déplace à gauche
if (axisH > 0)
isLeft =
false; // Si l'input est positif, le personnage se déplace à droite
sp.flipX = isLeft; // Inverse le sprite si nécessaire
}
}
Ajout du comportement Flip
Cette section vérifie la direction du mouvement et ajuste l’orientation du personnage en conséquence. Si le joueur se déplace vers la gauche (axe horizontal < 0), le sprite est retourné en modifiant la propriété flipX du composant SpriteRenderer. Cela permet d’alterner l’affichage du personnage lorsqu’il se déplace vers la gauche ou la droite, donnant ainsi l’impression qu’il regarde dans la bonne direction.
Rendu et animation Unity 2D
A présent, le mouvement de notre Robot commence à prendre vie. Maintenant que le personnage peut se déplacer, l’étape suivante consiste à animer la marche du personnage, en associant les mouvements à différentes animations pour une expérience de jeu plus immersive.
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 déplacer un personnage en Unity 2D ?
Comment empêcher un personnage de pivoter dans Unity 2D ?
Comment utiliser le flip de sprite en Unity 2D ?
Pourquoi utiliser un script pour animer un personnage en Unity ?
Comment améliorer le mouvement d'un personnage en Unity ?
Conclusion
En maîtrisant le déplacement et l’animation de votre personnage en Unity 2D, vous pouvez créer des expériences de jeu plus immersives. Quelles autres techniques d’animation pourriez-vous explorer pour enrichir vos projets Unity ?