Esempio n. 1
0
    // Mevcut yolun ucuna yeni bir kavşak koyup bu kavşağın ucundan
    // yeni düz yol(lar) çıkarmaya yarayan fonksiyon
    private IEnumerator YoluGuncelle()
    {
        // 2 saniye bekle çünkü player kavşaktan tam döndüğü anda
        // eski yolu yok edersek player büyük olasılıkla aşağı düşer
        yield return(new WaitForSeconds(2f));

        // arkada kalan yolları yok et (içeriklerini havuza yolla)
        solYol.YoluYokEt();
        sagYol.YoluYokEt();

        // az önce döndüğümüz kavşağı havuza ekle
        kavsakObjesi.gameObject.SetActive(false);
        ObjeHavuzu.Instance.HavuzaYolObjesiEkle(kavsakObjesi);

        // Tüm objelerin konumlarını, 3D uzayda 0,0,0'a yaklaşacak şekilde kaydır
        // çünkü objelerin konumları 0,0,0'dan çok uzaklaşınca, "floating point precision"
        // diye donanımsal bir kısıtlamadan dolayı objeler arası olmaması gereken boşluklar
        // olabiliyor veya kamera hareketi sapıtabiliyor
        Vector3 kaydirmaMiktari = Player.Instance.KonumuResetle();

        KameraKontrol.Instance.transform.localPosition += kaydirmaMiktari;
        ileriYol.YoluKaydir(kaydirmaMiktari);

        // yolun ucuna yeni bir kavşak ve o kavşaktan çıkan yeni
        // yol(lar) oluştur
        DonemecOlustur(ileriYol.BitisNoktasi, ileriYol.Yon);
    }
    // Mevcut yolun ucuna yeni bir kavşak koyup bu kavşağın ucundan
    // yeni düz yollar çıkarmaya yarayan fonksiyon
    IEnumerator YoluGuncelle()
    {
        // 10 saniye bekle çünkü player kavşaktan tam döndüğü anda
        // eski yolu yok edersek player büyük olasılıkla aşağı düşer
        yield return(new WaitForSeconds(10f));

        // arkada kalan yolları yok et (içeriklerini havuza yolla)
        solYol.YoluYokEt(havuz);
        sagYol.YoluYokEt(havuz);

        // az önce döndüğümüz kavşağı deaktif et (görünmez kıl)
        havuz.SolDonemec().gameObject.SetActive(false);
        havuz.SagDonemec().gameObject.SetActive(false);
        havuz.SolVeSagDonemec().gameObject.SetActive(false);

        // yolun ucuna yeni bir kavşak ve o kavşaktan çıkan yeni
        // yollar oluştur
        DonemecOlustur(ileriYol.BitisNoktasi(), ileriYol.Yon());
    }