Menu
CoddyTech

Cada vez más rápido

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

challenge icon

Desafío

Intermedio

Cada captura hace que las estrellas caigan más rápido. Añade [SerializeField] private float speedUp (la escena lo establece en 0.5) y súmalo a fallSpeed cada vez que atrapes una estrella. Una estrella que no atrapes no cambia la velocidad. Conserva todo lo de los pasos anteriores.

Pruébalo tú mismo

using UnityEngine;

public class Catcher : MonoBehaviour
{
    [SerializeField] private float speed = 6f;
    [SerializeField] private Transform star;
    [SerializeField] private float fallSpeed = 3f;
    private int score;

    void Update()
    {
        float x = transform.position.x;
        if (Input.GetKey(KeyCode.RightArrow))
        {
            x += speed * Time.deltaTime;
        }
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            x -= speed * Time.deltaTime;
        }
        x = Mathf.Clamp(x, -4f, 4f);
        transform.position = new Vector3(x, transform.position.y, transform.position.z);

        star.position += Vector3.down * fallSpeed * Time.deltaTime;

        if (Vector3.Distance(transform.position, star.position) < 1f)
        {
            score++;
            Debug.Log("Caught! Score: " + score);
            ResetStar();
        }
        else if (star.position.y < 0f)
        {
            ResetStar();
        }
    }

    void ResetStar()
    {
        star.position = new Vector3(Random.Range(-4f, 4f), 6f, 0f);
    }
}

Todas las lecciones de Fundamentos de scripting en Unity