Menu
CoddyTech

Contrarreloj

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

Una carrera contrarreloj por un jardín. El corredor empieza en un extremo con diez segundos en el reloj y tiene que llegar a la meta blanca del extremo opuesto, rodeando un seto, antes de que se acabe el tiempo. Los relojes dorados del camino añaden unos segundos más cada uno. Cuando queda poco tiempo, el reloj se pone rojo; cuando se acaba, el recorrido vuelve a empezar. Llega a la meta a tiempo y el juego continúa en la escena Finish.

Escribe dos scripts: Runner para el corredor, un CharacterController, y Race para el objeto Race.

challenge icon

Desafío

Difícil

La compilación tiene dos escenas, Track y Finish. En la pista, los relojes tienen la etiqueta Clock y la meta, Goal; ambos son activadores.

El Inspector asigna a Runner speed (6), gravity (-9.81) y race (el script Race).

  • La acción Move del proyecto hace que el corredor avance a speed unidades por segundo: a derecha e izquierda a lo largo del eje x, y arriba y abajo a lo largo del eje z. Cae con gravity y solo se mueve mediante controller.Move, así que el seto lo detiene.
  • Al chocar con un reloj, lo recoge y le da a la carrera su bonificación. Al chocar con la meta, termina la carrera.

El Inspector asigna a Race timeLimit (10), bonus (3) y timeText.

  • El tiempo restante empieza en timeLimit y disminuye según el tiempo real que pasa. timeText lo muestra con un decimal, como Time: 7.4, en blanco y en rojo (Color.red) cuando quedan menos de 3 segundos.
  • Cada reloj añade bonus segundos.
  • Cuando el tiempo llega a 0, registra Time's up! y vuelve a cargar la pista desde el principio.
  • Cuando la carrera termina a tiempo, registra el tiempo restante, como Finished with 4.2 s left, y carga la escena Finish.

Pulsa Play y vence al reloj; después, Check.

Pruébalo tú mismo

using UnityEngine;
using UnityEngine.SceneManagement;
using TMPro;

public class Race : MonoBehaviour
{
    public float timeLimit = 10f;
    public float bonus = 3f;
    public TMP_Text timeText;
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Creación de juegos reales