Menu
CoddyTech

De plus en plus vite

Fait partie de la section Les bases du scripting dans Unity du Journey Unity de Coddy. Leçon 40 sur 67.

challenge icon

Défi

Moyen

Chaque étoile attrapée fait tomber les étoiles plus vite. Ajoute [SerializeField] private float speedUp (la scène le définit à 0.5) et ajoute-le à fallSpeed chaque fois qu’une étoile est attrapée. Une étoile manquée ne change pas la vitesse. Garde tout ce qui vient des étapes précédentes.

Essayez vous-même

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

Toutes les leçons de Les bases du scripting dans Unity