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); }