1. Altın ve Engel Prefab'lerini Hazırla
  • Altın ve engeller için birer Prefab oluştur. Bu, tekrar kullanılabilir nesneler yaratmana olanak tanır.
  • Prefab'lerini organize etmek için bir klasör oluşturabilirsin (örneğin, Assets/Prefabs).

2. Sonsuz Yol Mantığını Ayarla
  • Sonsuz bir yol için genelde bir "kaydırma" mekanizması veya sürekli olarak yeni yolların oluşturulması kullanılır.
  • Yolu segmentlere ayırarak her segmentin sonunda yeni bir segment oluşturabilirsin.

3. Spawn (Yerleştirme) Sistemi
  • Altın ve engelleri rastgele pozisyonlarda yerleştirmek için bir spawn sistemi oluştur.

Örnek bir Spawner script'i:

using UnityEngine;

public class Spawner : MonoBehaviour
{
    public GameObject[] coins; // Altın prefab'leri
    public GameObject[] obstacles; // Engel prefab'leri
    public Transform[] spawnPoints; // Spawn noktaları (yatay eksende rastgele pozisyonlar)
    public float spawnInterval = 2f; // Yerleştirme aralığı
    private float timer;

    void Update()
    {
        timer += Time.deltaTime;

        if (timer >= spawnInterval)
        {
            SpawnObjects();
            timer = 0;
        }
    }

    void SpawnObjects()
    {
        // Rastgele bir spawn noktasını seç
        int randomIndex = Random.Range(0, spawnPoints.Length);
        Transform spawnPoint = spawnPoints[randomIndex];

        // Rastgele bir altın ve engel prefab'i seç
        GameObject coinPrefab = coins[Random.Range(0, coins.Length)];
        GameObject obstaclePrefab = obstacles[Random.Range(0, obstacles.Length)];

        // Altın ve engeli spawn et
        Instantiate(coinPrefab, spawnPoint.position + Vector3.up, Quaternion.identity);
        Instantiate(obstaclePrefab, spawnPoint.position, Quaternion.identity);
    }
}
4. Spawn Noktalarını Belirle
  • Spawn noktaları için sahnede boş GameObject'ler oluştur ve bunları spawn noktaları olarak kullan.
  • Bu GameObject'leri bir listeye (Transform[]) ekleyerek script'te kullanabilirsin.

5. Objeleri Yok Et
  • Performansı artırmak için ekrandan çıkan objeleri yok etmelisin.

Bunun için aşağıdaki gibi bir script kullanabilirsin:

using UnityEngine;

public class DestroyAfterTime : MonoBehaviour
{
    public float destroyTime = 5f; // X saniye sonra objeyi yok et

    void Start()
    {
        Destroy(gameObject, destroyTime);
    }
}
Bu script'i altın ve engel prefab'lerine ekle.

6. Optimize Etmek İçin Object Pooling Kullan
  • Eğer çok fazla obje spawn ediyorsan, performansı artırmak için Object Pooling yöntemi kullanabilirsin.
  • Bu yöntemle objeleri yok etmek yerine yeniden kullanırsın.

7. Test Et ve Hata Ayıkla
  • Sistemi sahnede test ederek spawn noktalarının doğru çalışıp çalışmadığını kontrol et.
  • Altın ve engellerin yerleştirme sıklığını spawnInterval ile ayarlayabilirsin.