Plateformes mobiles
Fait partie de la section Créer de vrais jeux du Journey Unity de Coddy. Leçon 49 sur 56.
Défi
MoyenLa 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) etspeed(1.5), et unpublic Vector3 delta. - Elle glisse depuis son point de départ sur une distance de
distanceunités dans la direction +x, à une vitesse despeedunités par seconde, puis revient à son point de départ, et ainsi de suite indéfiniment. - À chaque image,
deltacorrespond à 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.yest supérieur à 0.5 : le joueur se tient dessus) et que l’objet possède unMovingPlatform, conserve cette plateforme dans un champ. - Dans
Update, ajoute ledeltade cette plateforme au mouvement transmis àcontroller.Move, puis oublie la plateforme (définis le champ ànull). L’appel àMovela 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
1Texte à l’écran
Canvas et texteAfficher le scoreFormater les nombresUn compte à reboursRécapitulatif : compteur de vitesse4Scènes et niveaux
Charger une scèneRedémarrer le niveauNiveau suivantConserver entre les scènesRécapitulatif : sélection du niveau7Contrôle du temps
Mettre en pause avec timeScaleRalentiTemps non mis à l’échelleRécapitulatif : Bullet Time10Projet : jeu de plateforme en 3D
Le parcoursPlateformes mobiles2Boutons et écrans
Boutons et onClickLambdasRelier les éléments dans l’InspectorActiver et désactiver les panneauxBarres de santéRécapitulatif : boutique d’améliorations5Sauvegarder avec PlayerPrefs
Enregistrer un nombreCharger avec une valeur par défautMeilleur scoreEnregistrer les paramètresRécapitulatif : les pièces à la banque