Menu
CoddyTech

Cada vez mais rápido

Parte da seção Noções básicas de scripting no Unity do Journey de Unity da Coddy. Lição 40 de 67.

challenge icon

Desafio

Médio

Cada captura faz as estrelas caírem mais rápido. Adicione [SerializeField] private float speedUp (a cena define esse valor como 0.5) e some-o a fallSpeed cada vez que uma estrela for capturada. Uma estrela perdida não altera a velocidade. Mantenha tudo das etapas anteriores.

Experimente você mesmo

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 as lições de Noções básicas de scripting no Unity