Example #1
0
    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();
            }
        }
    }
Example #2
0
    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);
    }