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 49 / 67.

Birkaç saniyede bir bir şey oluşturan bir üreticiye zamanlayıcı gerekir. Time.deltaTime, son karenin ne kadar sürdüğüdür; bu nedenle bunu her Update() çağrısında bir alandaki değere eklemek, geçen saniyeleri verir. Toplam aralığa ulaştığında nesneyi oluştur ve aralığı toplamdan çıkar.

Bu çeşme 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ı korur: kare 0.51 saniyede bittiyse, sonraki yarım saniye saymaya 0.01’den başlar ve damlalar ritmi korur. timer = 0 bu kalanı atar; böylece her damla biraz geç düşer ve gecikme uzun bir oyun boyunca birikir. timer özeldir çünkü Inspector’da kimsenin onu ayarlaması gerekmez.

challenge icon

Görev

Orta

Dropper, her interval saniyede bir kutu bırakmalıdır (Inspector'da 2 yazıyor): ilk kutu Play'e bastıktan 2 saniye sonra, ardından her 2 saniyede bir kutu daha.

  • Her kutuyu dropper'ın konumunda, döndürmeden oluştur.
  • Her kutudan sonra numarasını kaydet: Box 1, Box 2 ve böyle devam eder.

Play'e bas ve yığının büyümesini izle, ardından Check'e 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"... mesajlarını günlüğe kaydet
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

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