Menu
CoddyTech

Yıldız Üstüne Yıldız

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

challenge icon

Görev

Orta

Her yakalamadan ve her kaçırmadan sonra yeni bir yıldız gönder. Yıldızın y değeri 0'ın altına düştüğünde kaçırılmış olur. Yakalanırsa da kaçırılırsa da yıldız, y = 6 ve z = 0 konumunda, -4 ile 4 arasında rastgele bir x değeriyle yeniden başlar. Random.Range(min, max), min ile max arasında rastgele bir kayan noktalı sayı döndürür; bu nedenle Random.Range(-4f, 4f) bu x değerini seçer.

Her iki durumda da yıldız aynı şekilde yeniden başladığından, bunu void ResetStar() adlı bir yöntemde bir kez yaz ve her iki durumdan da bu yöntemi çağır. Kaçırma puan kazandırmaz. Ö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);
            star.position = new Vector3(star.position.x, 6f, star.position.z);
        }
    }
}

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