/// <summary> /// Carga un nivel, instanciando un memento del mismo /// </summary> /// <param name="gridMemento"></param> public void Load(GridMemento gridMemento) { Debug.Log("Cargando memento del nivel \"" + _currentLevelInfo.LevelName + "\""); // Instancia las clases de memento si no estaban instanciadas if (_gridOriginator == null) { _gridOriginator = new GridOriginator(_currentLevelInfo.Size); } if (_gridCaretaker == null) { _gridCaretaker = new GridCaretaker(10); } // Spawnea los bloques foreach (var blockState in gridMemento.BlocksState) { Level.Instance.SpawnBlock(blockState); } // Spawnea los characters foreach (var charState in gridMemento.CharactersState) { Level.Instance.SpawnCharacter(charState, true); } }
/// <summary> /// Descarga el nivel, destruyendo todos los bloques, characters y la grilla /// </summary> public void Unload() { // Destruye todos los bloques foreach (var block in _gridOriginator.Grid.AllBlocks) { Destroy(block.gameObject); } // Destruye todos los characters foreach (var character in _gridOriginator.Grid.AllCharacters) { Destroy(character.gameObject); } // Destruye la grilla _gridOriginator = null; _gridCaretaker = null; }