Menu
CoddyTech

Yakalayıcı

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

Bu bölümde küçük bir oyun olan Catch the Star, her derste bir özellik eklenerek oluşturuluyor: bir yıldız düşüyor, onu yakalayan nesneyi altında sola ve sağa kaydırıyorsun, her yakalayış puan kazandırıyor ve sonraki yıldızın daha hızlı düşmesini sağlıyor; üç kez kaçırınca oyun bitiyor. Bunların tümü, yakalayan nesnenin üzerindeki Catcher adlı tek bir betikte yer alıyor. İlk özellik hareket: yakalayan nesne ok tuşlarıyla kayıyor ve zeminden hiç ayrılmıyor.

Bir sayıyı belirli sınırlar içinde tutma işini Mathf.Clamp(value, min, max) yapar. Değer min değerinden küçükse min, max değerinden büyükse max, aksi durumda değerin kendisini döndürür. Bu kamera oyuncuyu bir kule boyunca yukarı doğru takip eder, ancak yüksekliği 2 ile 12 arasında kalır:

[SerializeField] private Transform player;

void Update()
{
    float y = Mathf.Clamp(player.position.y, 2f, 12f);
    transform.position = new Vector3(transform.position.x, y, transform.position.z);
}

Clamp yeni bir sayı döndürür ve kendi başına hiçbir şeyi değiştirmez, bu yüzden sonucu bir değişkene ata. Clamp işlemini o karedeki tüm değişikliklerden sonra ve konumu geri yazmadan önce uygula; böylece hiçbir karede nesne sınırını aşmaz.

challenge icon

Görev

Orta

Yakalayıcı mavi çubuğa hareket kazandır.

  1. Update() içinde transform.position.x değerini float x içine kopyala, ardından basılı tutulan ok tuşuna göre speed * Time.deltaTime değerini ekle veya çıkar.
  2. 2 birim genişliğindeki yakalayıcıyı zeminde tut (x değeri -5 ile 5 arasında): x = Mathf.Clamp(x, -4f, 4f);.
  3. y ve z değerlerini koruyarak x değerini transform.position içine geri yaz.

“Oyna” düğmesine bas ve ok tuşlarını basılı tut: kenarlarda durur. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

public class Catcher : MonoBehaviour
{
    [SerializeField] private float speed = 6f;

    void Update()
    {
        // Ok tuşları: x ekseni boyunca saniyede speed birim hızla kaydır.
        // Yakalayıcının tamamını zeminde tut (x değeri -5 ile 5 arasında, yakalayıcının genişliği 2 birim).
    }
}

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

Kendi başına pratik yap: Unity playground