Additive yükleme
- Oyun Geliştirme kursu
- Orta seviye
- Ders 57/83
- 4 dk
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
using System;
class Program
{
static void Main()
{
// baseScene ve overlayScene değerlerini tanımlayıp yazdır
}
}Örnek çözüm
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ç
SceneManager.LoadScene("InventoryUI", LoadSceneMode.____);
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 |