Meilleur temps
Fait partie de la section Créer de vrais jeux du Journey Unity de Coddy. Leçon 53 sur 56.
Défi
MoyenDernière étape : chaque niveau mémorise votre meilleur temps. Conservez tout ce qui vient des leçons précédentes. Le HUD de chaque niveau affiche un BestText en haut à droite, et la scène le relie au nouveau champ bestText de FinishLine.
Dans FinishLine (ajoutez using TMPro;) :
- Un champ
TMP_TextbestTextdéfini dans l’Inspector, et le temps de la partie : unfloatqui augmente deTime.deltaTimeà chaque image. - Chaque niveau enregistre son meilleur temps sous sa propre clé PlayerPrefs :
BestTime_suivi du nom du niveau, par exempleBestTime_Level1. - Dans
Start, affichez le meilleur temps enregistré du niveau avec une décimale, sous la formeBest: 12.4 s, ouBest: nones’il n’y en a pas encore. - Lorsque le joueur franchit la ligne d’arrivée, avant le chargement du niveau suivant, enregistrez le temps de la partie si le niveau n’a pas encore de meilleur temps ou si la partie l’a battu. Une partie plus lente ne modifie pas le meilleur temps.
Appuyez sur Play et établissez un temps, puis essayez de le battre, puis cliquez sur Check.
Essayez vous-même
using UnityEngine;
using UnityEngine.SceneManagement;
public class FinishLine : MonoBehaviour
{
void OnTriggerEnter(Collider other)
{
if (other.GetComponent<Player>() == null) return;
Scene level = SceneManager.GetActiveScene();
Debug.Log(level.name + " complete!");
int next = level.buildIndex + 1;
if (next >= SceneManager.sceneCountInBuildSettings)
{
next = 0;
}
SceneManager.LoadScene(next);
}
}
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