Menu
CoddyTech

Plateformes mobiles

Fait partie de la section Créer de vrais jeux du Journey Unity de Coddy. Leçon 49 sur 56.

challenge icon

Défi

Moyen

La plateforme bleue devrait glisser d’avant en arrière au-dessus du vide. Garde tout ce qui vient de la leçon précédente.

Complète MovingPlatform :

  • Deux champs définis par l’Inspector, distance (3) et speed (1.5), et un public Vector3 delta.
  • Elle glisse depuis son point de départ sur une distance de distance unités dans la direction +x, à une vitesse de speed unités par seconde, puis revient à son point de départ, et ainsi de suite indéfiniment.
  • À chaque image, delta correspond à la distance parcourue pendant cette image : sa position après le déplacement moins sa position avant.

Un CharacterController n’est pas entraîné par ce sur quoi il se tient : sur une plateforme mobile, il reste à sa place et la plateforme glisse sous lui. Déplacer son transform.position ne fonctionne pas non plus : le prochain appel à Move du contrôleur repart de l’endroit où la physique l’a vu pour la dernière fois et annule la modification. Fais en sorte que Player se déplace avec la plateforme :

  • Ajoute OnControllerColliderHit. Lorsque la normale du contact pointe vers le haut (hit.normal.y est supérieur à 0.5 : le joueur se tient dessus) et que l’objet possède un MovingPlatform, conserve cette plateforme dans un champ.
  • Dans Update, ajoute le delta de cette plateforme au mouvement transmis à controller.Move, puis oublie la plateforme (définis le champ à null). L’appel à Move la détecte à nouveau tant que le joueur se tient dessus.

Appuie sur Play, saute sur la plateforme et déplace-toi avec elle, puis clique sur Check.

Essayez vous-même

using UnityEngine;

public class MovingPlatform : MonoBehaviour
{
    // Une prochaine leçon complétera ceci : une plateforme qui glisse d’avant en arrière.
}

Toutes les leçons de Créer de vrais jeux