Menu
CoddyTech

El corredor

Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 60 de 67.

En este capítulo crearás un juego pequeño, Dodge the Blocks. Diriges a un corredor por un carril mientras caen bloques del cielo, y un solo toque pone fin a la partida. Todo el juego está en un único script, Runner, que incorpora una característica en cada lección: la dirección, los bloques que caen, su eliminación, el impacto y una puntuación.

La primera característica es la dirección, que se mantiene dentro del carril, con Mathf.Clamp(value, min, max) de Catch the Star: devuelve min cuando el valor está por debajo del rango, max cuando está por encima y, en los demás casos, el propio valor. Dónde se aplica la limitación es importante. Este medidor de carga se llena mientras mantienes pulsada la barra espaciadora, se vacía cuando no la mantienes pulsada y nunca sale del rango de 0 a 10:

[SerializeField] private float charge = 0f;

void Update()
{
    if (Input.GetKey(KeyCode.Space))
    {
        charge += 4f * Time.deltaTime;
    }
    else
    {
        charge -= 2f * Time.deltaTime;
    }
    charge = Mathf.Clamp(charge, 0f, 10f);
    transform.localScale = new Vector3(0.5f, charge, 0.5f);
}

La limitación se aplica después del cambio. Si se limitara primero, el valor podría terminar el fotograma un paso por encima del límite, y la barra se dibujaría a partir de ese valor. Además, Mathf.Clamp devuelve un número nuevo en lugar de cambiar la variable que le pasas, así que asigna el resultado de nuevo a la variable.

challenge icon

Desafío

Intermedio

Empieza Dodge the Blocks con el corredor. El Inspector asigna al script Runner los valores speed (6) y laneEdge (4).

  • Las flechas izquierda y derecha mueven al corredor a lo largo del eje x a speed unidades por segundo.
  • Su coordenada x nunca baja de -laneEdge ni supera laneEdge, así que permanece en el carril.

Pulsa Play, haz clic en el juego y corre hasta ambos extremos del carril, después pulsa Check.

Pruébalo tú mismo

using UnityEngine;

public class Runner : MonoBehaviour
{
    [SerializeField] private float speed = 6f;
    [SerializeField] private float laneEdge = 4f;

    void Update()
    {
        // mueve a lo largo de x con las flechas y luego mantén x dentro del carril
    }
}
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 Fundamentos de scripting en Unity