Menu
CoddyTech

Miglior tempo

Fa parte della sezione Creare veri giochi del percorso Unity di Coddy. Lezione 53 di 56.

challenge icon

Sfida

Medio

Ultimo passaggio: ogni livello ricorda il tuo tempo migliore. Mantieni tutto ciò che hai realizzato nelle lezioni precedenti. L'HUD di ogni livello ha un BestText in alto a destra, e la scena lo inserisce nel nuovo campo bestText di FinishLine.

In FinishLine (aggiungi using TMPro;):

  • Un campo TMP_Text bestText, impostato dall'Inspector, e il tempo della corsa: un float che aumenta di Time.deltaTime a ogni fotogramma.
  • Ogni livello salva il proprio record con una chiave PlayerPrefs specifica: BestTime_ e il nome del livello, ad esempio BestTime_Level1.
  • In Start, mostra il record salvato del livello con una cifra decimale, come Best: 12.4 s, oppure Best: none se non ce n'è ancora uno.
  • Quando il giocatore attraversa il traguardo, prima che venga caricato il livello successivo, salva il tempo della corsa se il livello non ha ancora un record o se la corsa lo ha battuto. Una corsa più lenta lascia invariato il record.

Premi Play e stabilisci un tempo, poi prova a batterlo, quindi premi Check.

Provalo tu

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);
    }
}

Tutte le lezioni di Creare veri giochi