Menu
CoddyTech

Sonraki Bölüm

Coddy'nin Unity Journey'sinin Gerçek Oyunlar Geliştirmek bölümünün bir parçası. Ders 19 / 56.

Derlemenin sahne listesindeki her sahnenin bir numarası vardır; bu, derleme dizini olarak adlandırılır: ilk sahne için 0, sonraki için 1 ve böyle devam eder. LoadScene hem bu numarayı hem de bir adı alır; SceneManager.sceneCountInBuildSettings ise listede kaç sahne olduğunu belirtir. Seviyeler listede sıralı olduğunda, sonraki seviye etkin sahnenin dizini + 1 olur. Bu çıkış sonraki seviyeyi yükler ve son seviyeden sonra durur:

void OnTriggerEnter(Collider other)
{
    if (!other.CompareTag("Player")) return;
    int next = SceneManager.GetActiveScene().buildIndex + 1;
    if (next < SceneManager.sceneCountInBuildSettings)
    {
        SceneManager.LoadScene(next);
    }
    else
    {
        Debug.Log("You finished the game!");
    }
}

Dört sahne olduğunda dizinler 0 ile 3 arasındadır ve sceneCountInBuildSettings değeri 4'tür; dolayısıyla son seviyede next değeri 4 olur ve listenin bir sonrasını gösterir. Testin next < sceneCountInBuildSettings olmasının nedeni budur: LoadScene(4) hiçbir şey yüklemez ve Unity'nin Cannot load scene: Invalid scene name (empty string) and invalid build index 4 hatasını günlüğe kaydeder.

Artık her seviyede aynı çıkış betiği kullanılır ve bunların hiçbiri bir sahne adı belirtmez. Bir seviye eklemek için sahnesini listeye eklersin; sırayı değiştirmek için sahneleri listede sürükleyip bırakırsın.

challenge icon

Görev

Kolay

Build listesinde dört sahne var: Menu (indeks 0), ardından Level1, Level2 ve Level3. Menu'deki Play düğmesi Level1'i açar ve ok tuşları Player'ı hareket ettirir (ikisi de hazır). Her seviyede Goal betiğine sahip altın bir Goal bulunur. Hiçbir sahnenin adını belirtmeden yaz:

  • Start içinde, bu seviyenin numarasını ve seviye sayısını levelText içinde Level 2 of 3 biçiminde göster. Menu bir seviye değildir.
  • Player (etiketi Player olan) hedefe ulaştığında listedeki sonraki seviyeyi yükle. Son seviyeden sonra Menu'ye dön.

Play düğmesine bas, üç seviyenin tamamını oyna, ardından Check düğmesine bas.

Kendin dene

using UnityEngine;
using UnityEngine.SceneManagement;
using TMPro;

public class Goal : MonoBehaviour
{
    public TMP_Text levelText;

    void Start()
    {
        // "Level 2 of 3" metnini göster: bu seviyenin numarasını ve toplam seviye sayısını
    }

    void OnTriggerEnter(Collider other)
    {
        // oyuncu hedefe ulaştı: sonraki seviyeyi, son seviyeden sonra ise menüyü yükle
    }
}
quiz iconKendini test et

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

Gerçek Oyunlar Geliştirmek bölümündeki tüm dersler