TGViewer
Red Atom Red Atom @unitygamelab · 204 subscribers
Post #33 58
🚀 Аддитивная загрузка сцен в Unity | Часть 3
Сегодня разберём мощный инструмент — аддитивную загрузку сцен, который позволяет комбинировать несколько сцен в одной!

🔍 Что такое аддитивная загрузка?
Это режим, при котором новая сцена добавляется к текущей, а не заменяет её.
Ключевые отличия от Single-режима:
1. Все объекты из текущей сцены остаются
2. Можно создать "композитный" уровень из нескольких сцен
3. Идеально для:
3.1. Динамической подгрузки локаций
3.2. Разделения логики (например, UI + игровой мир)

📌 Загрузка сцены аддитивно
using UnityEngine.SceneManagement;

// Загрузка сцены "Dungeon" поверх текущей
SceneManager.LoadScene("Dungeon", LoadSceneMode.Additive);


Параметры:
sceneName/buildIndex — имя или индекс сцены
LoadSceneMode.Additive — режим добавления

🗑 Выгрузка сцен
Есть 3 способа выгрузить сцену:

1. По имени
SceneManager.UnloadSceneAsync("Dungeon");


2. По индексу
SceneManager.UnloadSceneAsync(2);


3. Через объект Scene
Scene dungeonScene = SceneManager.GetSceneByName("Dungeon");
SceneManager.UnloadSceneAsync(dungeonScene);


Важно:
Используйте UnloadSceneAsync (а не синхронный метод)
Нельзя выгрузить активную сцену

🔄 Режимы выгрузки
При выгрузке можно указать UnloadOptions:
// Выгрузить сразу (без проверки зависимостей)
SceneManager.UnloadSceneAsync("Dungeon", UnloadSceneOptions.None);

// Безопасная выгрузка (проверяет ссылки на объекты)
SceneManager.UnloadSceneAsync("Dungeon", UnloadSceneOptions.UnloadAllEmbeddedSceneObjects);


🔗 Обмен объектами между сценами
Чтобы объект сохранился при выгрузке сцены:

1. Перенос в другую сцену
GameObject player = GameObject.Find("Player");
SceneManager.MoveGameObjectToScene(player, SceneManager.GetActiveScene());


2. Создание DontDestroyOnLoad - Объект не уничтожается при загрузке другой сцены
GameObject audioManager = GameObject.Find("AudioManager");
DontDestroyOnLoad(audioManager);


⚠️ Важные нюансы
- Порядок загрузки — последняя загруженная сцена может перекрывать предыдущие
- Производительность — слишком много сцен = нагрузка на CPU
- Освещение — требует перестройки (Lightmap) при комбинации сцен
More from @unitygamelab
  1. Sep 19, 2026Эксперименты Начал экспериментировать с постпроцессингом в URP и написал свой первый шейде…
  2. Sep 12, 2026Закончил все комнаты Закончил, конечно, громко сказано, но по локации уже можно пройтись о…
  3. Sep 5, 2026Добавил ещё две новых комнаты и и осталось всего 6 В главном хабе пришлось потратить много…
  4. Aug 29, 2026ЕЩЁ две комнаты Теперь есть ещё и склад с комнатой управления складом. Расставил свет от б…
  5. Aug 22, 2026Ещё две комнаты Добавил на локацию помещение охраны(небольшая комнатка) и распределительны…
  6. Aug 15, 2026Комната с лифтом Закончил комнату с лифтом - теперь в локации есть два помещения. Очень хо…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →