2026-10-12 23:54:03 +03:00
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEngine.SceneManagement;
|
|
|
|
|
|
|
|
|
|
// Переходы город <-> карта мира
|
|
|
|
|
public static class SceneNavigator
|
|
|
|
|
{
|
|
|
|
|
public const string CitySceneName = "MVP1";
|
|
|
|
|
public const string WorldMapSceneName = "WorldMap";
|
|
|
|
|
|
2026-11-05 14:18:22 +03:00
|
|
|
// Из какого города ушли на карту мира: 2D (MVP1) или 3D (City3D) -- туда и возвращаемся (05.11)
|
|
|
|
|
static string lastCityScene = CitySceneName;
|
|
|
|
|
|
2026-10-12 23:54:03 +03:00
|
|
|
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();
|
|
|
|
|
|
2026-11-05 14:18:22 +03:00
|
|
|
lastCityScene = SceneManager.GetActiveScene().name;
|
2026-10-12 23:54:03 +03:00
|
|
|
SceneManager.LoadScene(WorldMapSceneName);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void ReturnToCity()
|
|
|
|
|
{
|
|
|
|
|
if (SaveManager.Instance != null) SaveManager.Instance.SaveGame();
|
2026-11-05 14:18:22 +03:00
|
|
|
string city = Application.CanStreamedLevelBeLoaded(lastCityScene) ? lastCityScene : CitySceneName;
|
|
|
|
|
SceneManager.LoadScene(city);
|
2026-10-12 23:54:03 +03:00
|
|
|
}
|
|
|
|
|
}
|