using System; using UnityEngine; namespace BlueWater.Maps { public class MapManager : Singleton { [field: SerializeField] public FirstTutorialMapController FirstTutorialMapController { get; private set; } [field: SerializeField] public TitanSlimeMapController TitanSlimeMapController { get; private set; } [field: SerializeField] public BossMapController RhinocerosMapController { get; private set; } [field: SerializeField] public BossMapController SandMoleMapController { get; private set; } private MapController _currentMapController; public void InitializeMap() { MapController newMapController = null; switch (DataManager.Instance.CurrentSaveStage) { case SaveStage.None: break; case SaveStage.FirstTutorial: newMapController = FirstTutorialMapController; break; case SaveStage.SecondTutorial: //MapController = FindAnyObjectByType(); break; case SaveStage.TitanSlime: newMapController = TitanSlimeMapController; break; case SaveStage.Rhinoceros: newMapController = RhinocerosMapController; break; case SaveStage.SandMole: newMapController = SandMoleMapController; break; default: throw new ArgumentOutOfRangeException(); } if (_currentMapController != null) { _currentMapController.AllDestroyObjects(); } _currentMapController = newMapController; if (_currentMapController != null) { _currentMapController.InitializeMap(); } } } }