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 / 56.

Bir Unity oyunu sahneler olarak bölünür: bir menü, her seviye ve jenerik. Her sahne, kendine ait nesneleri olan 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 Play 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 bölümündeki File > Build Profiles altında bulunur (eski sürümlerde bu pencereye Build Settings denir). Ad, sahne dosyasının adıyla tam olarak 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 ile 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 mevcut kare çalışmasının geri kalanı tamamlanır, bu nedenle LoadScene sonrasındaki satırlar yine de yürütülür; sonraki karenin başında Unity eski sahnedeki tüm nesneleri yok eder ve yeni sahneyi oluşturur; yeni sahnenin betikleri de Awake ve Start ile yeniden başlar.

challenge icon

Görev

Kolay

İki portalı olan bir merkez. Bu yapıda üç sahne var: Hub (ilk sahne), Desert ve Glacier. Hub'da bir portal Desert'a, diğeri Glacier'a açılır ve bu sahnelerin her birinde Hub'a geri dönen bir portal bulunur. Her portalda Portal betiği vardır ve Inspector'da sceneName, portalın açıldığı sahneye ayarlanır. Ok tuşları Oyuncuyu hareket ettirir (hazır).

Portal.cs dosyasını yaz: Player (etiketi Player olan) bir portala girdiğinde, o portalın sceneName değerinde belirtilen sahneyi yükle.

Play'e bas, her iki yeri de ziyaret et, sonra Check'e bas.

Kendin dene

using UnityEngine;

public class Portal : MonoBehaviour
{
    public string sceneName;

    // oyuncu içeri girdiğinde, sceneName adlı sahneyi 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