Contenu du cours
Jeu de Combat dans Unity
Jeu de Combat dans Unity
Obstacles Générés Aléatoirement.
La classe Obstacle
gère les obstacles dans le jeu, en s'assurant qu'ils se repositionnent lorsqu'ils sortent de l'écran pour maintenir un gameplay continu.
Méthodes
Méthode Start
But : Initialise le dernier obstacle et trouve le transform du joueur.
Comment ça fonctionne :
lastObject = startingLastObject;
: Définit lastObject
à l'obstacle initial spécifié dans l'Inspecteur ;
player = FindAnyObjectByType<PlayerMVT>().transform;
: Trouve le transform du joueur en utilisant la méthode FindAnyObjectByType
.
Méthode OnBecameInvisible
But : Repositionne l'obstacle lorsqu'il sort de l'écran et remplit certaines conditions.
Comment ça fonctionne :
Le script s'assure que le joueur existe avant de continuer (if (player == null) return;
), vérifie que l'obstacle est positionné derrière le joueur (if (transform.position.x >= player.position.x) return;
), et empêche le repositionnement consécutif (if (transform == lastObject) return;
).
Il récupère la position actuelle de l'obstacle (Vector2 position = transform.position;
), génère un nombre aléatoire (float random = Random.Range(0, 100);
), et ajuste la position y de l'obstacle en fonction du nombre aléatoire.
Ensuite, il met à jour la position x par rapport au dernier obstacle (position.x = lastObject.position.x + Random.Range(6f, 10f);
), et met à jour lastObject
pour faire référence à l'obstacle actuel (lastObject = transform;
).
Résumé
- Initialisation : Définit le dernier obstacle initial et trouve le joueur ;
- Repositionnement : Lorsqu'un obstacle sort de l'écran et répond à des conditions spécifiques, il est repositionné à une distance aléatoire devant le dernier obstacle avec une hauteur aléatoire ;
- Conditions : Assure que les obstacles ne sont repositionnés que s'ils sont derrière le joueur, et non le même obstacle de manière répétée.
Cette configuration permet un flux continu d'obstacles dans le jeu, maintenant le défi et la variété pour le joueur.
Merci pour vos commentaires !