Menu
CoddyTech

Mejor tiempo

Parte de la sección Creación de juegos reales del Journey de Unity de Coddy. Lección 53 de 56.

challenge icon

Desafío

Intermedio

Último paso: cada nivel recuerda tu mejor tiempo. Conserva todo lo de las lecciones anteriores. El HUD de cada nivel tiene un BestText en la parte superior derecha, y la escena lo asigna al nuevo campo bestText de FinishLine.

En FinishLine (añade using TMPro;):

  • Un campo TMP_Text bestText que configura el Inspector, y el tiempo de la partida: un float que aumenta en Time.deltaTime cada fotograma.
  • Cada nivel guarda su mejor tiempo con su propia clave de PlayerPrefs: BestTime_ y el nombre del nivel, como BestTime_Level1.
  • En Start, muestra el mejor tiempo guardado del nivel con un decimal, como Best: 12.4 s, o Best: none si todavía no tiene ninguno.
  • Cuando el jugador cruza la meta, antes de que se cargue el siguiente nivel, guarda el tiempo de la partida si el nivel aún no tiene un mejor tiempo o si la partida lo superó. Una partida más lenta deja intacto el mejor tiempo.

Pulsa Play y registra un tiempo; después, intenta superarlo y, a continuación, pulsa Check.

Pruébalo tú mismo

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

Todas las lecciones de Creación de juegos reales