protected void SaveLevelButton_Click(object sender, EventArgs e)
    {
        int ySize = Convert.ToInt32(LevelYSizeTextBox.Text);

        XMLToCSharp.Level level = new XMLToCSharp.Level();
        level.Name = LevelNameTextBox.Text;
        level.Blocks = new List<XMLToCSharp.Block>();

        string[] lines = LevelDataTextBox.Text.Split(',');
        for (int row = 0; row < lines.Length; row++)
        {
            for (var col = 0; col < lines[row].Length; col++)
            {
                int realY = ySize - row - 1;
                switch (lines[row][col])
                {
                    case '8':
                        level.Exit = new XMLToCSharp.Exit() { X = col, Y = realY };
                        break;
                    case '4':
                        level.Player = new XMLToCSharp.Player() { X = col, Y = realY };
                        break;
                    case '2':
                        level.Blocks.Add(new XMLToCSharp.Block() { Type = "Gem", X = col, Y = realY });
                        break;
                    case '1':
                        level.Blocks.Add(new XMLToCSharp.Block() { Type = "Ground", X = col, Y = realY });
                        break;
                }
            }
        }

        string resultingFile;
        XmlSerializer serializer = new XmlSerializer(typeof(XMLToCSharp.Level));
        using (StringWriterUtf8 textWriter = new StringWriterUtf8())
        {
            serializer.Serialize(textWriter, level);
            resultingFile = textWriter.ToString();
        }

        SimplePlatformerEntities ents = new SimplePlatformerEntities();
        ents.levels.Add(new levels() { name = level.Name, level = resultingFile });
        ents.SaveChanges();

        Response.Redirect("~/Default.aspx");
    }
    void Awake()
    {
        XMLToCSharp.Level currentLevel = null;
        try {
            XmlSerializer serializer = new XmlSerializer(typeof(XMLToCSharp.Level));
            using (FileStream stream = new FileStream(InterSceneData.LevelPath, FileMode.Open)) {
                currentLevel = serializer.Deserialize(stream) as XMLToCSharp.Level;
            }
        } catch (Exception e) {
            Debug.Log(e.Message);
        }

        // ставим на место игрока и выход
        PlayerObject.transform.position = new Vector3(currentLevel.Player.X, currentLevel.Player.Y, 0);
        ExitObject.transform.position   = new Vector3(currentLevel.Exit.X, currentLevel.Exit.Y, 1);

        // расставляем землю и камни
        foreach (XMLToCSharp.Block b in currentLevel.Blocks)
        {
            GameObject toInstantiate = null;
            switch (b.Type)
            {
            case "Ground":
                toInstantiate = GroundPrefab;
                break;

            case "Gem":
                toInstantiate = GemPrefab;
                break;
            }

            Instantiate(toInstantiate, new Vector3(b.X, b.Y, 0), Quaternion.identity);
        }

        // активируем игрока и выход
        PlayerObject.SetActive(true);
        ExitObject.SetActive(true);
    }