Example #1
0
    // Save the current level in an xml file.
    public void SaveLevel(string boardName)
    {
        int index = 0;

        bricksActive.Clear();

        BrickLevel brickLevel = new BrickLevel();

        foreach (GameObject b in GameObject.FindGameObjectsWithTag("Brick"))
        {
            bricksActive.Add(b);
        }
        brickLevel.bricks = new Brick[bricksActive.Count];
        foreach (GameObject b in bricksActive)
        {
            Brick temp = b.GetComponent <BrickBehaviour>().GetBrick();
            brickLevel.bricks[index] = temp;
            index += 1;
        }

        XmlSerializer serializer = new XmlSerializer(typeof(BrickLevel));
        string        xml;

        using (StringWriter writer = new StringWriter()) {
            serializer.Serialize(writer, brickLevel);
            xml = writer.ToString();
        }
        myLevelSave = new XmlDocument();
        myLevelSave.LoadXml(xml);
        myLevelSave.Save(Application.dataPath + "/data/" + boardName + ".xml");
        Debug.Log("Saved Level.");
    }
Example #2
0
    // Load a level into the current scene.
    void LoadLevel(TextAsset lvl)
    {
        XmlSerializer serializer   = new XmlSerializer(typeof(BrickLevel));
        StringReader  stringReader = new StringReader(lvl.text);

        using (XmlReader reader = XmlReader.Create(stringReader)) {
            brickLevel = (BrickLevel)serializer.Deserialize(reader);

            // Destroy all bricks currently in the arena.
            foreach (GameObject b in bricksActive)
            {
                Destroy(b);
            }
            bricksActive.Clear();

            // Build new bricks.
            for (int i = 0; i < brickLevel.bricks.Length; i++)
            {
                BrickSpawn(brickLevel.bricks[i], i);
            }
        }
    }