Menu
CoddyTech

Meilleur temps

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

challenge icon

Défi

Moyen

Derniè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_Text bestText défini dans l’Inspector, et le temps de la partie : un float qui augmente de Time.deltaTime à chaque image.
  • Chaque niveau enregistre son meilleur temps sous sa propre clé PlayerPrefs : BestTime_ suivi du nom du niveau, par exemple BestTime_Level1.
  • Dans Start, affichez le meilleur temps enregistré du niveau avec une décimale, sous la forme Best: 12.4 s, ou Best: none s’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