private void SaveStory(string path, Story story)
    {
        XmlSaver xs         = new XmlSaver();
        string   datastring = xs.SerializeObject(story, typeof(Story));

        xs.CreateXML(path, datastring);

        Debug.Log("save to " + path + " success!");
    }
Exemplo n.º 2
0
        //存档时调用的函数//
        public void Save()
        {
            string gameDataFile = GetDataPath() + "/" + dataFileName;

            Debug.Log("存档已保存于" + gameDataFile);
            //将存档写入XML文件
            string dataString = xs.SerializeObject(gameData, typeof(GameData));

            xs.CreateXML(gameDataFile, dataString);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 存档
        /// </summary>
        public void Save(IPlayer currentPlayer)
        {
            if (currentPlayer == null)
            {
                Debug.LogError("没有Player,无法存档");
                return;
            }
            // TODO:在这里保存数据
            // 如 gameData.Name = currentPlayer.Name;

            // File
            string gameDataFile = GetDataPath() + "/" + dataFileName;

            Debug.Log("存档已保存于" + gameDataFile);
            //将存档写入XML文件
            string dataString = xs.SerializeObject(gameData, typeof(GameData));

            xs.CreateXML(gameDataFile, dataString);
        }
    public void Create()
    {
        string systemDataFile = "Save/systemsave.sav";

        systemdata = new SystemData();

        string dataString = xs.SerializeObject(systemdata, typeof(SystemData));

        xs.CreateXML(systemDataFile, dataString);
    }
Exemplo n.º 5
0
    /// <summary>
    /// 保存数据
    /// </summary>
    public void Save()
    {
        // 获取文件名
        string gameDataFile = GetDataPath() + "/" + dataFileName;

        // 序列化对象
        string dataString = xs.SerializeObject(gameData, typeof(GameData));

        // 写入到文件中
        xs.CreateXML(gameDataFile, dataString);
    }
Exemplo n.º 6
0
    //存档时调用的函数//
    public void Save(int current)
    {
        string gameDataFile = GetDataPath() + "/" + dataFileName + current.ToString() + ".sav";

        //save game data
        gameData.Position = PlayerPrefs.GetString("LastScene");
        gameData.crystal  = PlayerPrefs.GetInt("Crystal");
        gameData.plot     = PlayerPrefs.GetString("Plot");
        gameData.fairy    = PlayerPrefs.GetInt("Fairy");

        string dataString = xs.SerializeObject(gameData, typeof(GameData));

        xs.CreateXML(gameDataFile, dataString);
    }
Exemplo n.º 7
0
        /// <summary>
        /// 存档
        /// </summary>
        public string Save(IPlayer currentPlayer)
        {
            if (currentPlayer == null)
            {
                Debug.LogError("没有Player,无法存档");
                return(string.Empty);
            }
            // TODO:在这里保存数据
            gameData.HP   = currentPlayer.CurrentHP;
            gameData.PosX = currentPlayer.GameObjectInScene.transform.position.x;
            gameData.PosY = currentPlayer.GameObjectInScene.transform.position.y;
            gameData.PosZ = currentPlayer.GameObjectInScene.transform.position.z;
            gameData.Fit  = currentPlayer.Fits[(int)FitType.Weapon];

            // File
            string gameDataFile = GetDataPath() + "/" + dataFileName;

            Debug.Log("存档已保存于" + gameDataFile);
            //将存档写入XML文件
            string dataString = xmlSaver.SerializeObject(gameData, typeof(GameData));

            xmlSaver.CreateXML(gameDataFile, dataString);
            return(dataString);
        }
Exemplo n.º 8
0
 public void Save()
 {
     System.Type type = this.GetType();
     this.key = GDM.UKey;
     try
     {
         string gameDataFile = Utils.GetDataPath() + "/" + type.Name + ".xml";
         string dataString   = xs.SerializeObject(this, type);
         xs.CreateXML(gameDataFile, dataString);
         Debug.Log("Save " + type.Name + " success......");
     } catch (System.Exception e)
     {
         Debug.Log("存档Save出错!存档清除:key=" + GDM.UKey + "; File:" + type.Name);
         Debug.Log("e.Message: " + e.Message);
     }
 }
Exemplo n.º 9
0
    void GridUpdate(SceneView sceneview)
    {
        Handles.BeginGUI();
        GUILayout.BeginArea(new Rect(0, 0, 1000, 640));
        // GUILayout.BeginHorizontal();

        GUILayout.BeginHorizontal();
        GUILayout.Label("Scene Name: ", GUILayout.Width(128));
        grid.scenename = GUILayout.TextField(grid.scenename, GUILayout.Width(128));
        GUILayout.EndHorizontal();
        focus = GUILayout.Toolbar(focus, catecory, GUILayout.Width(64 * catecory.Length));

        focus_tile[focus] = GUILayout.Toolbar(focus_tile[focus], TileTextures[focus], GUILayout.Width(64 * TileTextures[focus].Length), GUILayout.Height(64));
        // GUILayout.EndHorizontal();
        GUILayout.Label("press a to add, s to save, d to load,\nwhen the scene window is activated.");

        GUILayout.EndArea();
        Handles.EndGUI();

        Event e = Event.current;

        Ray     r        = Camera.current.ScreenPointToRay(new Vector3(e.mousePosition.x, -e.mousePosition.y + Camera.current.pixelHeight));
        Vector3 mousePos = r.origin;

        if (e.isKey)
        {
            switch (e.character)
            {
            case 'a':
                string     name   = TileNames[focus][focus_tile[focus]];
                Object     loaded = Resources.Load("Prefabs\\" + catecory[focus] + "\\" + name, typeof(GameObject));
                GameObject pre    = PrefabUtility.InstantiatePrefab(loaded) as GameObject;
                pre.name = name;
                pre.tag  = catecory[focus];

                Vector3 aligned = new Vector3(Mathf.Floor(mousePos.x / grid.width) * grid.width + grid.width / 2, Mathf.Floor(mousePos.y / grid.height) * grid.height + grid.height / 2, 0);
                pre.transform.position = aligned;

                break;

            //save the map
            case 's':
                Debug.Log("save map start!");

                string path = "Level";

                //check the directory
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }

                path += "/" + grid.scenename + ".lv";

                LevelInfo levelinfo = new LevelInfo();

                GameObject[] AllGameObjects = FindObjectsOfType(typeof(GameObject)) as GameObject[];
                foreach (GameObject go in AllGameObjects)
                {
                    if (go.name == "grid" || go.name == "scenario")
                    {
                        continue;
                    }
                    if (go.name == "Main Camera")
                    {
                        levelinfo.Rooms = go.GetComponent <CameraFollow>().Rooms;
                        continue;
                    }
                    if (go.transform.parent != null)
                    {
                        continue;
                    }
                    if (go.tag == "Event")
                    {
                        EventItem ei = new EventItem();
                        ei.name = go.name;
                        ei.x    = go.transform.position.x;
                        ei.y    = go.transform.position.y;
                        if (go.name == "GotoPlot")
                        {
                            ei.arg = go.GetComponent <Plot>().plotno;
                        }
                        else if (go.name == "GotoScene")
                        {
                            ei.arg = go.GetComponent <GotoScene>().scenename;
                        }
                        levelinfo.events.Add(ei);
                    }
                    else
                    {
                        LevelItem li = new LevelItem();
                        li.tag  = go.tag;
                        li.name = go.name;
                        li.x    = go.transform.position.x;
                        li.y    = go.transform.position.y;
                        levelinfo.items.Add(li);
                    }
                }

                XmlSaver xs         = new XmlSaver();
                string   datastring = xs.SerializeObject(levelinfo, typeof(LevelInfo));
                xs.CreateXML(path, datastring);

                Debug.Log("save map success!");
                break;

            // load the map
            case 'd':
                // clear the map
                AllGameObjects = SceneManager.GetActiveScene().GetRootGameObjects();
                foreach (GameObject go in AllGameObjects)
                {
                    if (go.name == "grid" || go.name == "Main Camera" || go.name == "scenario")
                    {
                        continue;
                    }
                    if (go.transform.parent != null)
                    {
                        continue;
                    }
                    GameObject.DestroyImmediate(go);
                }
                // load the map
                xs   = new XmlSaver();
                path = "Level/" + grid.scenename + ".lv";
                if (xs.hasFile(path))
                {
                    datastring = xs.LoadXML(path);
                    levelinfo  = xs.DeserializeObject(datastring, typeof(LevelInfo)) as LevelInfo;

                    Camera.main.GetComponent <CameraFollow>().CameraMode = 0;
                    Camera.main.GetComponent <CameraFollow>().Rooms      = levelinfo.Rooms;

                    foreach (LevelItem li in levelinfo.items)
                    {
                        string tag = li.tag;
                        name = li.name;
                        float x = li.x;
                        float y = li.y;

                        loaded   = Resources.Load("Prefabs\\" + tag + "\\" + name, typeof(GameObject));
                        pre      = PrefabUtility.InstantiatePrefab(loaded) as GameObject;
                        pre.name = name;
                        pre.transform.position = new Vector3(x, y, 0);
                    }
                }
                else
                {
                    Debug.Log("the level data does not exist.");
                }
                break;
            }
        }
    }
Exemplo n.º 10
0
    void GridUpdate(SceneView sceneview)
    {
        Handles.BeginGUI();
        GUILayout.BeginArea(new Rect(0, 0, 1000, 640));
        // GUILayout.BeginHorizontal();

        GUILayout.BeginHorizontal();
        GUILayout.Label("Scene Name: ", GUILayout.Width(128));
        grid.scenename = GUILayout.TextField(grid.scenename, GUILayout.Width(128));
        GUILayout.EndHorizontal();
        focus = GUILayout.Toolbar(focus, catecory, GUILayout.Width(64 * catecory.Length));

        focus_tile[focus] = GUILayout.Toolbar(focus_tile[focus], TileTextures[focus], GUILayout.Width(64 * TileTextures[focus].Length), GUILayout.Height(64));
        // GUILayout.EndHorizontal();
        GUILayout.Label("press a to add, s to save, d to load,\nwhen the scene window is activated.");

        GUILayout.EndArea();
        Handles.EndGUI();

        Event e = Event.current;

        Ray     r        = Camera.current.ScreenPointToRay(new Vector3(e.mousePosition.x, -e.mousePosition.y + Camera.current.pixelHeight));
        Vector3 mousePos = r.origin;

        if (e.isKey)
        {
            switch (e.character)
            {
            case 'a':
                string     name   = TileNames[focus][focus_tile[focus]];
                Object     loaded = Resources.Load("Prefabs\\" + catecory[focus] + "\\" + name, typeof(GameObject));
                GameObject pre    = PrefabUtility.InstantiatePrefab(loaded) as GameObject;
                pre.name = name;
                pre.tag  = catecory[focus];

                Vector3 aligned = new Vector3(Mathf.Floor(mousePos.x / grid.width) * grid.width + grid.width / 2, Mathf.Floor(mousePos.y / grid.height) * grid.height + grid.height / 2, 0);
                pre.transform.position = aligned;

                break;

            //save the map
            case 's':
                Debug.Log("save map start!");

                string path = "Level";

                //check the directory
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }

                path += "/" + grid.scenename + ".lv";

                LevelInfo levelinfo = new LevelInfo();

                GameObject[] AllGameObjects = FindObjectsOfType(typeof(GameObject)) as GameObject[];
                foreach (GameObject go in AllGameObjects)
                {
                    if (go.name == "grid" || go.name == "scenario" || go.name == "ACTManager")
                    {
                        continue;
                    }
                    if (go.name == "Main Camera")
                    {
                        levelinfo.Rooms = go.GetComponent <CameraFollow>().Rooms;
                        continue;
                    }
                    if (go.transform.parent != null)
                    {
                        continue;
                    }
                    if (go.tag == "Event")
                    {
                        EventItem ei = new EventItem();
                        ei.name = go.name;
                        ei.x    = go.transform.position.x;
                        ei.y    = go.transform.position.y;
                        ei.arg  = go.GetComponent <Plot>().plotno;
                        levelinfo.events.Add(ei);
                    }
                    else if (go.name == "Background")
                    {
                        SpriteRenderer[] spriteRenderers = go.GetComponentsInChildren <SpriteRenderer>();
                        foreach (SpriteRenderer spriteRenderer in spriteRenderers)
                        {
                            Background background = new Background();

                            background.name = spriteRenderer.name;
                            background.x    = spriteRenderer.transform.position.x;
                            background.y    = spriteRenderer.transform.position.y;

                            levelinfo.backgrounds.Add(background);
                        }
                    }
                    else
                    {
                        LevelItem li = new LevelItem();
                        li.tag  = go.tag;
                        li.name = go.name;
                        li.x    = go.transform.position.x;
                        li.y    = go.transform.position.y;
                        levelinfo.items.Add(li);
                    }
                }

                XmlSaver xs         = new XmlSaver();
                string   datastring = xs.SerializeObject(levelinfo, typeof(LevelInfo));
                xs.CreateXML(path, datastring);

                Debug.Log("save map success!");
                break;

            // load the map
            case 'd':
                ACTManager.Clear();
                ACTManager.SetThisLevel(grid.scenename);
                ACTManager.LoadLevel(true);
                break;
            }
        }
    }