Menu
CoddyTech

Sempre più veloce

Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 40 di 67.

challenge icon

Sfida

Medio

Ogni presa fa cadere le stelle più velocemente. Aggiungi [SerializeField] private float speedUp (la scena lo imposta a 0.5) e sommalo a fallSpeed ogni volta che viene presa una stella. Una stella mancata non cambia la velocità. Mantieni tutto ciò che hai realizzato nei passaggi precedenti.

Provalo tu

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);
    }
}

Tutte le lezioni di Fondamenti di scripting in Unity