Menu
CoddyTech

Gittikçe Daha Hızlı

Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 40 / 67.

challenge icon

Görev

Orta

Her yakalayışta yıldızlar daha hızlı düşer. [SerializeField] private float speedUp ekle (sahne bunu 0.5 olarak ayarlar) ve her yıldız yakalandığında bunu fallSpeed değerine ekle. Kaçırılan bir yıldız hızı değiştirmez. Önceki adımlardaki her şeyi koru.

Kendin dene

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

Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler