Beispiel #1
0
 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;
         }
     }
 }
Beispiel #2
0
        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);
        }