// 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()); }