Files
MVP1/Assets/Scripts/WorldMap/SceneNavigator.cs
T
AlexanderandClaude Opus 5.5 56a5a82a8c 2D-город удалён (решение 05.11, перенос проверен): сцена MVP1, 2D-стройка, 2D-здания и камеры; перенос старых сохранений остаётся
- Удалено: MVP1, Prefab/Buildings, BuildManager/BuildGrid/BuildGhost/BuildSlot, BuildingData (ScriptableObject), HeroWalker, BuildingUI, ResourceProducer, 2D-камеры, UINavigation, редакторские инструменты 2D, _Recovery
- SettlementModule: ISettlement и старая секция settlement как есть -- для переноса в 3D (MoveFrom2D)
- BuildModeController: только кнопка «СТРОЙКА» / «Перенести» для 3D; загрузчики зданий -- только имена
- Build Settings: City3D, WorldMap

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 17:08:16 +01:00

38 lines
1.6 KiB
C#

using UnityEngine;
using UnityEngine.SceneManagement;
// Переходы город <-> карта мира
public static class SceneNavigator
{
// Город -- 3D-поселение (решение 05.11; 2D-город MVP1 удалён 06.11)
public const string CitySceneName = "City3D";
public const string WorldMapSceneName = "WorldMap";
// Из какой сцены города ушли на карту мира -- туда и возвращаемся
static string lastCityScene = CitySceneName;
public static void OpenWorldMap()
{
if (!Application.CanStreamedLevelBeLoaded(WorldMapSceneName))
{
Debug.LogError($"[КАРТА] Сцена '{WorldMapSceneName}' не добавлена в Build Settings. " +
"Выйди из Play Mode и выполни Tools -> Build World Map Scene.");
return;
}
// Сохраняемся до ухода из города: постройки на карте мира не существуют,
// и SaveManager берёт их из последнего сохранения
if (SaveManager.Instance != null) SaveManager.Instance.SaveGame();
lastCityScene = SceneManager.GetActiveScene().name;
SceneManager.LoadScene(WorldMapSceneName);
}
public static void ReturnToCity()
{
if (SaveManager.Instance != null) SaveManager.Instance.SaveGame();
string city = Application.CanStreamedLevelBeLoaded(lastCityScene) ? lastCityScene : CitySceneName;
SceneManager.LoadScene(city);
}
}