Créer un jeu de plateforme 2D simple dans Unity
Dans ce tutoriel, nous allons créer un jeu de plateforme 2D de base dans Unity. Cela impliquera de créer un personnage de joueur qui peut se déplacer, sauter et interagir avec les plateformes. Nous ajouterons également quelques éléments de jeu de base comme des obstacles et des objets à collectionner.
1. Mise en place du projet
Commençons par configurer un nouveau projet Unity 2D:
- Ouvrez Unity et créez un nouveau projet 2D.
- Allez dans Fichier > Nouvelle scène et sélectionnez le mode 2D.
- Enregistrez la scène sous MainScene.
2. Création du personnage du joueur
Nous allons d’abord créer un personnage de joueur simple à l’aide d’un sprite et ajouter une fonctionnalité de mouvement:
- Cliquez avec le bouton droit de la souris dans la fenêtre Hiérarchie et sélectionnez Créer un objet vide. Nommez cet objet Joueur.
- Ajoutez un composant Sprite Renderer à l'objet Player en cliquant sur Ajouter un composant dans l'inspecteur.
- Sélectionnez un sprite à utiliser comme personnage, soit en créant le vôtre, soit en important un élément 2D depuis Unity Asset Store.
- Ajoutez un Rigidbody2D et un BoxCollider2D à l'objet Player pour la physique et la détection de collision.
3. Rédaction du script de déplacement du joueur
Maintenant, écrivons un script pour permettre au joueur de se déplacer et de sauter. Suivez ces étapes:
- Faites un clic droit dans la fenêtre Projet et choisissez Créer > Script C#. Nommez-le PlayerController.
- Attachez ce script à l’objet Player en le faisant glisser de la fenêtre Projet vers le Player dans la hiérarchie.
Remplacez le contenu du script par ce qui suit:
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float moveSpeed = 5f;
public float jumpForce = 7f;
private Rigidbody2D rb;
private bool isGrounded = true;
void Start()
{
rb = GetComponent();
}
void Update()
{
// Player movement
float moveInput = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(moveInput * moveSpeed, rb.velocity.y);
// Jumping
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
rb.velocity = new Vector2(rb.velocity.x, jumpForce);
isGrounded = false;
}
}
private void OnCollisionEnter2D(Collision2D collision)
{
// Check if player is touching the ground
if (collision.collider.CompareTag("Ground"))
{
isGrounded = true;
}
}
}
4. Créer des plateformes et un environnement
Nous allons maintenant créer des plateformes sur lesquelles le joueur pourra sauter:
- Dans la hiérarchie, faites un clic droit et sélectionnez Créer vide, puis nommez-le Plateforme.
- Ajoutez un BoxCollider2D et un Sprite Renderer à la plateforme.
- Sélectionnez un sprite pour la plate-forme (par exemple, un rectangle plat).
- Dupliquez la plateforme en appuyant sur Ctrl+D (ou Cmd+D sur Mac) et positionnez les copies pour créer un niveau.
- Marquez ces objets comme Ground dans l'inspecteur pour la logique de saut du joueur.
5. Ajout d'obstacles
Pour rendre le jeu plus difficile, ajoutons quelques obstacles:
- Créez un autre GameObject vide et nommez-le Obstacle.
- Ajoutez un BoxCollider2D et un Sprite Renderer à cet objet.
- Choisissez un sprite pour l'obstacle (par exemple, un pic ou un danger).
- Dans la méthode OnCollisionEnter2D du joueur, vous pouvez détecter les collisions avec des obstacles et redémarrer le jeu ou déduire la santé.
6. Ajout d'objets de collection
Nous pouvons également ajouter des objets de collection, tels que des pièces ou des bonus:
- Créez un autre GameObject vide et nommez-le Collectible.
- Ajoutez un CircleCollider2D (définissez-le comme déclencheur) et un Sprite Renderer pour représenter l'objet de collection.
- Écrivez un script simple pour détecter quand le joueur récupère un objet:
using UnityEngine;
public class Collectible : MonoBehaviour
{
private void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Player"))
{
// Add points or other effects here
Destroy(gameObject); // Remove the collectible from the scene
}
}
}
7. Tester et peaufiner le jeu
Maintenant que les mécanismes de base sont en place, vous pouvez tester le jeu en appuyant sur le bouton Play. Essayez d'ajuster les éléments suivants:
- Modifiez les valeurs moveSpeed et jumpForce pour ajuster la vitesse à laquelle le joueur se déplace et saute.
- Dupliquez les plates-formes et les obstacles pour créer différents niveaux.
- Ajoutez des éléments d’arrière-plan ou des décorations pour rendre le jeu visuellement attrayant.
8. Améliorer le jeu de plateforme
Pour faire passer votre jeu de plateforme au niveau supérieur, pensez à ajouter:
- Animations pour le joueur, telles que des animations de marche et de saut.
- Effets sonores pour sauter, collecter des objets et heurter des obstacles.
- Une caméra qui suit les mouvements du joueur pour une vue plus dynamique du jeu.
Conclusion
Avec cette configuration de jeu de plateforme 2D simple, vous disposez désormais d'une structure de jeu de base qui peut être étendue avec davantage de fonctionnalités, de niveaux et de finitions. Expérimentez différentes mécaniques et créez votre propre jeu de plateforme unique.