void Save(StageLevelManager manager) { string title = "Save"; string message = "저장하시겠습니까?"; if (EditorUtility.DisplayDialog(title, message, "OK", "Cancel")) { string fileName = "stage-" + manager.stageId; string path = EditorUtility.SaveFilePanel(title, Application.dataPath + "/Resources/Stage/", fileName, "xml"); if (path.Length < 0) { return; } StageLevelManager.StageInfo stage = StageSerialize(manager); if (stage != null) { XmlSerializer ser = new XmlSerializer(typeof(StageLevelManager.StageInfo)); StreamWriter writer = new StreamWriter(path); ser.Serialize(writer, stage); writer.Close(); AssetDatabase.Refresh(); } } }
StageLevelManager.StageInfo StageSerialize(StageLevelManager manager) { var stage = new StageLevelManager.StageInfo(); var stageCells = new List <StageLevelManager.StageCell>(); int tileCount = stageCells.Count; for (int i = 0; i < tileCount; i++) { var ci = manager.stageTiles[i].GetCell(); stageCells.Add(ci); Debug.Log("cell : x = " + ci.x + "/" + ci.y); } stage.id = manager.stageId; stage.size = manager.stageSize; stage.cells = stageCells.ToArray(); return(stage); }