Tüm Rehberler

Top Zıplat — Rigidbody Fizik Oyunu

Başlangıç ⏱ 75 dk
BÖLÜM 8 / 8

Zorluk Artışı ve Bölüm Sistemi

Her bölümde platform küçülür, tuzaklar hızlanır ve yeni coinler eklenir. Additive scene loading ile bölüm geçişi yapıyoruz.

Unity Editör Adımları

Build Settings'e tüm sahneleri ekle
GameManager 'level' değişkeni tut
Her bölümde SpinTrap hızını artır
Platform boyutunu küçült
Level Complete trigger: tüm coinler toplandı → sonraki bölüm
csharp
using UnityEngine;
using UnityEngine.SceneManagement;

public class GameManager : MonoBehaviour
{
    public static GameManager Instance;
    public int currentLevel = 1;
    public int totalCoins;
    private int collectedCoins;

    void Awake() => Instance = this;

    public void Start()
    {
        // Sahnedeki tüm coinleri say
        totalCoins = FindObjectsOfType<Collectible>().Length;
        collectedCoins = 0;

        // Zorluk: tuzakları hızlandır
        foreach (var trap in FindObjectsOfType<SpinTrap>())
            trap.spinSpeed *= (1f + currentLevel * 0.2f);
    }

    public void CoinCollected()
    {
        collectedCoins++;
        if (collectedCoins >= totalCoins)
            LevelComplete();
    }

    void LevelComplete()
    {
        currentLevel++;
        PlayerPrefs.SetInt("Level", currentLevel);
        // 1 saniye bekle sonra sonraki sahneye geç
        Invoke(nameof(LoadNextLevel), 1.5f);
    }

    void LoadNextLevel()
    {
        int next = SceneManager.GetActiveScene().buildIndex + 1;
        if (next < SceneManager.sceneCountInBuildSettings)
            SceneManager.LoadScene(next);
        else
            SceneManager.LoadScene(0); // Başa dön
    }

    public void GameOver()
    {
        Time.timeScale = 0f;
        // GameOver UI göster
    }
}

FindObjectsOfType başlangıçta yavaş olabilir. Büyük projelerde ScriptableObject ile kayıt tut.

Kaynaklar & Asset Linkleri

Unity Scene Management: https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.html

Önceki Bölüm
Rehberi Tamamladın! 🎉