Menu
CoddyTech

Zamanlayıcıyla Nesne Oluşturma

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

Birkaç saniyede bir nesne oluşturan bir üretici zamanlayıcıya ihtiyaç duyar. Time.deltaTime, son karenin sürdüğü süredir; bu nedenle bunu her Update() çağrısında bir alana eklemek, geçen saniyeleri verir. Toplam süre aralığa ulaştığında nesne oluştur ve aralığı toplam süreden çıkar.

Bu fıskiye her yarım saniyede bir su damlası fırlatır:

public GameObject dropPrefab;
public float interval = 0.5f;
float timer;

void Update()
{
    timer += Time.deltaTime;
    if (timer >= interval)
    {
        Instantiate(dropPrefab, transform.position, Quaternion.identity);
        timer -= interval;
    }
}

timer -= interval kalan süreyi korur: kare 0.51 saniyede sona erdiyse, sonraki yarım saniyenin sayımı 0.01'den başlar ve damlalar ritmi korur. timer = 0 bu kalanı yok sayar; böylece her damla biraz geç düşer ve uzun bir oyun boyunca gecikme birikerek artar. timer özeldir, çünkü Inspector'da kimsenin onu ayarlaması gerekmez.

challenge icon

Görev

Orta

Her interval saniyede bir kutu bırak (Inspector'da 2).

  1. float timer; ve int count; alanlarını ekle. Update() içinde Time.deltaTime değerini timer değişkenine ekle.
  2. timer >= interval olduğunda Instantiate(boxPrefab, transform.position, Quaternion.identity); çağır ve timer değerinden interval değerini çıkar.
  3. Ardından count değerini 1 artır ve "Box " + count ifadesini günlüğe yazdır.

“Oyna” düğmesine bas: her 2 saniyede bir kutu düşer ve Console'da Box 1, Box 2 sayılır. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

public class BoxDropper : MonoBehaviour
{
    public GameObject boxPrefab;
    public float interval = 1f;

    void Update()
    {
        // Her interval saniyede bir: bir kutu bırak ve "Box 1", "Box 2"... şeklinde logla
    }
}

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

Kendi başına pratik yap: Unity playground