Menu
CoddyTech

Cada Vez Mais Rápido

Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 54 de 85.

challenge icon

Desafio

Médio

Faça cada captura acelerar as estrelas.

  1. Adicione [SerializeField] private float speedUp = 0.5f;.
  2. No if da captura, ao lado de score++;, adicione fallSpeed += speedUp;. Não em ResetStar(): as falhas também chamam essa função.

Pressione “Jogar” e capture algumas estrelas: cada uma cai mais rápido. Depois, pressione “Verificar”.

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 Fundamentos de Scripting no Unity

Pratique por conta própria: Playground de Unity