CodeBlanks Logo Icon CodeBlanks

Additive yükleme

LoadSceneMode.Additive ile üst üste sahneyi yüklemeyi öğrenirsin.

Additive Sahne Yükleme

Büyük oyun projelerinde tüm ortamı tek bir sahnede toplamak yerine parçalara ayırmak gerekir. LoadSceneMode.Additive kullanıldığında mevcut sahne silinmez; yeni sahne mevcut sahnenin üzerine bir katman (overlay) gibi eklenir.

using UnityEngine.SceneManagement;

// Oyun dünyası açıkken arayüz sahnesini üzerine ekleme
SceneManager.LoadScene("UIScene", LoadSceneMode.Additive);

Böylece aynı anda hem 3D oyun dünyası hem de bağımsız bir UI sahnesi birlikte çalışabilir.

Çoklu Sahne Mimarisi ve UnloadSceneAsync

Çoklu sahne yapısında işi biten alt sahneleri bellekten kaldırmak için SceneManager.UnloadSceneAsync() fonksiyonu çağrılır. Örneğin oyuncu envanteri kapattığında envanter sahnesi boşaltılır.

// Eklenen arayüz sahnesini bellekten tahliye etme
SceneManager.UnloadSceneAsync("UIScene");

Bu yöntem açık dünya oyunlarında bölgelerin arka planda dinamik yüklenip kaldırılmasını sağlar.

Uygulama Temel ve ek sahne bilgisini yazdır

baseScene değişkenine "World", overlayScene değişkenine "UIOverlay" ata. Ekrana Base: World + Additive: UIOverlay yazdır.

Başlangıç kodu

Player.cs
using System;

class Program
{
    static void Main()
    {
        // baseScene ve overlayScene değerlerini tanımlayıp yazdır
    }
}

Örnek çözüm

Player.cs
using System;

class Program
{
    static void Main()
    {
        string baseScene = "World";
        string overlayScene = "UIOverlay";
        Console.WriteLine("Base: " + baseScene + " + Additive: " + overlayScene);
    }
}

Beklenen çıktı

Base: World + Additive: UIOverlay

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 LoadSceneMode.Additive ile yeni bir sahne yüklendiğinde o anda açık olan mevcut sahneye ne olur?

  • Mevcut sahne açık kalmaya devam eder, yeni sahne onun yanına/üstüne eklenir Doğru cevap
  • Kamera görüntüsü tamamen siyaha döner ve sesler kesilir
  • Mevcut sahnedeki tüm nesneler bellekten ve diskten silinir
  • Oyun motoru çöker ve editör kendiliğinden kapanır

Açıklama: Additive modu mevcut sahneleri kapatmaz; yeni sahneyi var olan sahnelerin yanına ek bir katman olarak bağlar.

2 Üzerine ekleme modunu seç

Soru
SceneManager.LoadScene("InventoryUI", LoadSceneMode.____);
Cevap
SceneManager.LoadScene("InventoryUI", LoadSceneMode.Additive);

Açıklama: Mevcut sahneyi silmeden yeni sahneyi katman olarak eklemek için Additive modu kullanılır.

3 Additive sahne kavramları

Kavram Anlamı
LoadSceneMode.Additive Sahneyi kapatmadan ek sahne açan mod
UnloadSceneAsync Ek sahneyi bellekten tahliye eden metot
Multi-scene Oyunu birden çok sahne katmanına bölme
UI Overlay Oyun üstüne bindirilen bağımsız arayüz

Orta seviye bölümündeki tüm dersler