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