- Удалено: 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>
38 lines
1.6 KiB
C#
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);
|
|
}
|
|
}
|