Menu
CoddyTech

Bir Sahne Yükleme

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

Bir Unity oyunu sahneler olarak bölünür: bir menü, her seviye ve jenerik. Her sahne, kendi nesneleriyle ayrı bir dosyadır ve bir betik, UnityEngine.SceneManagement ad alanındaki SceneManager.LoadScene ile başka bir sahneye geçiş yapar. Inspector'da bağlanan bu menünün Oyna düğmesi, Forest seviyesini açar:

using UnityEngine;
using UnityEngine.SceneManagement;

public class MainMenu : MonoBehaviour
{
    public void Play()
    {
        SceneManager.LoadScene("Forest");
    }
}

Unity yalnızca derlemenin sahne listesinde bulunan sahneleri yükleyebilir: Unity 6'da bu liste, Scene List altında File > Build Profiles bölümündedir (eski sürümlerde bu pencereye Build Settings denir). Ad, sahne dosyasının adıyla tamamen aynı olmalıdır. Bir sahne listede yoksa veya "Forrest" gibi bir yazım hatası varsa hiçbir şey yüklenmez ve Console'da Scene 'Forrest' couldn't be loaded ifadesiyle başlayan ve sahnenin derlemeye eklenmediğini belirten bir hata görünür; oyun menüde kalır.

Geçiş anında gerçekleşmez. Önce geçerli karenin geri kalanı çalışır; bu nedenle LoadScene sonrasındaki satırlar yine yürütülür. Sonraki karenin başında Unity eski sahnenin tüm nesnelerini yok eder ve yenisini oluşturur; yeni sahnenin betikleri Awake ve Start ile yeniden çalışmaya başlar.

challenge icon

Görev

Kolay

Her portalın, sceneName değerinde belirtilen sahneyi yüklemesini sağla.

  1. Portal.cs dosyasının en üstüne using UnityEngine.SceneManagement; ekle.
  2. void OnTriggerEnter(Collider other) yaz: other.CompareTag("Player") olduğunda SceneManager.LoadScene(sceneName); çağır.

“Oyna” düğmesine bas ve her portalın içine yürü: Desert, Hub ve Glacier sırasıyla yüklenir. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

public class Portal : MonoBehaviour
{
    public string sceneName;

    // Oyuncu içeri girdiğinde sceneName adlı sahneyi yükle
}

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

Kendi başına pratik yap: Unity playground