Menu
CoddyTech

L’attrapeur

Fait partie de la section Les bases du scripting dans Unity du Journey Unity de Coddy. Leçon 36 sur 67.

Ce chapitre permet de créer un petit jeu, Catch the Star, à raison d’une fonctionnalité par leçon : une étoile tombe, tu fais glisser un attrapeur vers la gauche et vers la droite sous elle, chaque capture rapporte des points et accélère la chute de l’étoile suivante, et trois ratés mettent fin à la partie. Tout cela tient dans un seul script, Catcher, attaché à l’attrapeur. La première fonctionnalité est le déplacement : l’attrapeur glisse avec les touches fléchées et ne quitte jamais le sol.

Pour maintenir un nombre dans certaines limites, on utilise Mathf.Clamp(value, min, max). Cette méthode renvoie min lorsque la valeur est inférieure à min, max lorsqu’elle est supérieure à max, et la valeur elle-même dans les autres cas. Cette caméra suit le joueur lorsqu’il monte dans une tour, mais sa hauteur reste comprise entre 2 et 12 :

[SerializeField] private Transform player;

void Update()
{
    float y = Mathf.Clamp(player.position.y, 2f, 12f);
    transform.position = new Vector3(transform.position.x, y, transform.position.z);
}

Clamp renvoie un nouveau nombre et ne modifie rien par lui-même : tu dois donc affecter le résultat. Applique le clamp après tous les changements de la frame et avant de réaffecter la position, et aucun frame ne montrera l’objet au-delà de sa limite.

challenge icon

Défi

Moyen

Fais bouger le rattrapeur (la barre bleue). Tant que la flèche droite est maintenue, il glisse vers la droite (le long de +x) ; tant que la flèche gauche est maintenue, il glisse vers la gauche, dans les deux cas à speed unités par seconde. Ses coordonnées y et z ne changent jamais.

Le sol s’étend de x = -5 à x = 5 et le rattrapeur fait 2 unités de large. Limite sa coordonnée x afin que le rattrapeur reste toujours entièrement sur le sol.

Clique sur Play, clique sur le jeu et essaie les flèches, puis clique sur Check.

Essayez vous-même

using UnityEngine;

public class Catcher : MonoBehaviour
{
    [SerializeField] private float speed = 6f;

    void Update()
    {
        // Flèches : fais glisser le long de x à raison de speed unités par seconde.
        // Garde le catcher entièrement sur le sol (x de -5 à 5, le catcher fait 2 unités de large).
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Les bases du scripting dans Unity