Files

41 lines
1.9 KiB
C#
Raw Permalink Normal View History

using UnityEngine;
using UnityEngine.SceneManagement;
// Переходы город <-> карта мира
public static class SceneNavigator
{
// Город -- 3D-поселение (решение 05.11). Старый 2D-город (MVP1) исключён из сборки; если его открыть в редакторе,
// с карты мира вернёт в него же (lastCityScene)
public const string CitySceneName = "City3D";
public const string OldCitySceneName = "MVP1";
public const string WorldMapSceneName = "WorldMap";
// Из какого города ушли на карту мира: 2D (MVP1) или 3D (City3D) -- туда и возвращаемся (05.11)
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
: Application.CanStreamedLevelBeLoaded(CitySceneName) ? CitySceneName : OldCitySceneName;
SceneManager.LoadScene(city);
}
}