private void Load() { if (GameSettings.LoadMode) { SaveDataRepository saveDataRepository = new SaveDataRepository(); if (saveDataRepository.Load(out SavedData savedData)) { ; } { PlayerData playerData = new PlayerData() { Prefab = _playerData.Prefab, Speed = _playerData.Speed, StartPosition = savedData.Position }; _playerData = playerData; InteractiveObjectSettings interactiveObjectSettings = new InteractiveObjectSettings() { Objects = savedData.InteractiveObjects, DeathTrapPrefab = _interactiveObjectSettings.DeathTrapPrefab, InvulnerabilityBostPrefab = _interactiveObjectSettings.InvulnerabilityBostPrefab, RequiredKeyPrefab = _interactiveObjectSettings.RequiredKeyPrefab, SlowTrapPrefab = _interactiveObjectSettings.SlowTrapPrefab, SpeedBoostPrefab = _interactiveObjectSettings.SpeedBoostPrefab }; _interactiveObjectSettings = interactiveObjectSettings; } } }
public static IEnumerable <GameObject> Initialize(InteractiveObjectSettings interactiveObjectSettings) { List <GameObject> gameObjects = new List <GameObject>(); foreach (var item in interactiveObjectSettings.Objects) { switch (item.Type) { case InteractiveObjectEnum.SlowTrap: { var gameObject = GameObject.Instantiate(interactiveObjectSettings.SlowTrapPrefab, item.Position, Quaternion.identity); gameObjects.Add(gameObject); break; } case InteractiveObjectEnum.DeathTrap: { var gameObject = GameObject.Instantiate(interactiveObjectSettings.DeathTrapPrefab, item.Position, Quaternion.identity); gameObjects.Add(gameObject); break; } case InteractiveObjectEnum.RequiredKey: { var gameObject = GameObject.Instantiate(interactiveObjectSettings.RequiredKeyPrefab, item.Position, Quaternion.identity); gameObjects.Add(gameObject); break; } case InteractiveObjectEnum.SpeedBost: { var gameObject = GameObject.Instantiate(interactiveObjectSettings.SpeedBoostPrefab, item.Position, Quaternion.identity); gameObjects.Add(gameObject); break; } case InteractiveObjectEnum.InvulnerabilityBost: { var gameObject = GameObject.Instantiate(interactiveObjectSettings.InvulnerabilityBostPrefab, item.Position, Quaternion.identity); gameObjects.Add(gameObject); break; } default: throw new Exception($"Неподдерживаемый тип интерактивного объекта: {item.Type}"); } } return(gameObjects); }