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.
Défi
MoyenFais 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).
}
}
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
1Votre premier script
Bonjour, UnityPlacez le cubeBouger à chaque imageTourner chaque secondeDirigez avec les touchesRécapitulatif : conduisez le cube4Vecteurs
Addition de vecteursDirectionsEspaces local et mondeVitesse diagonaleDistance entre les objetsVector3 est une structRécapitulatif : pilote de drone7Projet : Attrape l’étoile
L’attrapeurUne étoile qui tombe2L’inspecteur
Champs de l’inspecteurSerializeFieldNombres flottants et MathfAttributs de l’inspecteurRécapitulatif : ascenseur5Transformations et hiérarchie
Parents et enfantsÉchelleRegarder les objetsSe déplacer vers un pointRécapitulatif : Lune en orbite8Rechercher des objets
Rechercher par nomTagsRechercher par typeLes références plutôt que FindLe null de UnityRécapitulatif : la pièce la plus proche11Projet : Esquivez les blocs
Le coureurBlocs qui tombent6GameObjects et composants
Références dans l’InspectorObtenir un composantComposants manquantsAjouter un composantRequireComponentAfficher et masquerRécapitulatif : interrupteur