/// <summary> /// 存档 /// </summary> public void Save(IPlayer currentPlayer) { if (currentPlayer == null) { Debug.LogError("没有Player,无法存档"); return; } // 拷贝值类型数据 gameData.Name = currentPlayer.Name; gameData.Rank = currentPlayer.Rank; gameData.Gold = currentPlayer.Gold; gameData.MedicineID = currentPlayer.MedicineID; gameData.CanAttack2 = currentPlayer.CanAttack2; gameData.CanAttack3 = currentPlayer.CanAttack3; gameData.CanAvoid = currentPlayer.CanAvoid; gameData.CanDush = currentPlayer.CanDush; // File string gameDataFile = GetDataPath() + "/" + dataFileName; Debug.Log("存档已保存于" + gameDataFile); //将存档写入XML文件 string dataString = xs.SerializeObject(gameData, typeof(GameData)); xs.CreateXML(gameDataFile, dataString); }
private void SaveToFile() { string gameDataFile = GetDataPath() + "/" + dataFileName; string dataString = xmlSaver.SerializeObject(gameData, typeof(GameData)); xmlSaver.CreateXML(gameDataFile, dataString); }
public void Save() //存档时调用的函数 { string gameDataFile = GetDataPath() + "/" + dataFileName; string dataString = xs.SerializeObject(gameData, typeof(GameData)); xs.CreateXML(gameDataFile, dataString); }
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!"); }
//存档时调用的函数// public void Save() { string gameDataFile = GetDataPath() + "/" + dataFileName; Debug.Log("存档已保存于" + gameDataFile); //将存档写入XML文件 string dataString = xs.SerializeObject(gameData, typeof(GameData)); xs.CreateXML(gameDataFile, dataString); }
/// <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); }
/// <summary> /// 保存数据 /// </summary> public void Save() { // 获取文件名 string gameDataFile = GetDataPath() + "/" + dataFileName; // 序列化对象 string dataString = xs.SerializeObject(gameData, typeof(GameData)); // 写入到文件中 xs.CreateXML(gameDataFile, dataString); }
//存档时调用的函数// 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); }
/// <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); }
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); } }
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; } } }
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; } } }