Menu
CoddyTech

Prendila

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

challenge icon

Sfida

Medio

Prendi la stella. Aggiungi un score che parte da 0. Quando la stella si avvicina a meno di 1 unità al raccoglitore (misura con Vector3.Distance), la stella viene presa:

  • aggiungi 1 a score,
  • registra Caught! Score: 1, con il nuovo punteggio,
  • sposta la stella di nuovo verso l'alto fino a y = 6, mantenendo i suoi valori x e z, così ricade.

Per ora, una stella che manca il bersaglio continua a cadere. 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;

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

Tutte le lezioni di Fondamenti di scripting in Unity