//读档时调用的函数// public void Load(int current) { string gameDataFile = GetDataPath() + "/" + dataFileName + current.ToString() + ".sav"; if (xs.hasFile(gameDataFile)) { string dataString = xs.LoadXML(gameDataFile); GameData gameDataFromXML = xs.DeserializeObject(dataString, typeof(GameData)) as GameData; //是合法存档// if (gameDataFromXML.key == gameData.key) { gameData = gameDataFromXML; PlayerPrefs.SetString("LastScene", gameData.Position); PlayerPrefs.SetInt("Crystal", gameData.crystal); PlayerPrefs.SetString("Plot", gameData.plot); PlayerPrefs.SetInt("Fairy", gameData.fairy); SceneManager.LoadScene("CrossRoad"); } //是非法拷贝存档// else { Debug.Log("save file broken"); //留空:游戏启动后数据清零,存档后作弊档被自动覆盖// } } }
public void Load() //读档时调用的函数 { string gameDataFile = GetDataPath() + "/" + dataFileName; if (xs.hasFile(gameDataFile)) //存档文件存在 { //print("have data"); string dataString = xs.LoadXML(gameDataFile); GameData gameDataFromXML = xs.DeserializeObject(dataString, typeof(GameData)) as GameData; if (gameDataFromXML.key == gameData.key) //是合法存档 { gameData = gameDataFromXML; //print("gameData.HeroLifeNum :" + gameData.HeroLifeNum); } else //是非法拷贝存档 { //留空:游戏启动后数据清零,存档后作弊档被自动覆盖 } } else //存档文件不存在 { if (gameData != null) //当前有数据 { Save(); //新建存档文件 } } }
private void LoadFromFile() { string gameDataFile = GetDataPath() + "/" + dataFileName; if (xmlSaver.hasFile(gameDataFile)) { string dataString = xmlSaver.LoadXML(gameDataFile); GameData gameDataFromXML = xmlSaver.DeserializeObject(dataString, typeof(GameData)) as GameData; if (gameDataFromXML.Key == gameData.Key) { gameData = gameDataFromXML; } else { } } else { if (gameData != null) { Save(); } } }
//读档时调用的函数// public void Load() { string gameDataFile = GetDataPath() + "/" + dataFileName; if (xs.hasFile(gameDataFile)) { string dataString = xs.LoadXML(gameDataFile); GameData gameDataFromXML = xs.DeserializeObject(dataString, typeof(GameData)) as GameData; //是合法存档// if (gameDataFromXML.key == gameData.key) { gameData = gameDataFromXML; } //是非法拷贝存档// else { //留空:游戏启动后数据清零,存档后作弊档被自动覆盖// } } else { if (gameData != null) { Save(); } } }
//读档时调用的函数,游戏开始时Player自动读档,如果没有存档那么自动创建 public void Load(IPlayer currentPlayer) { if (currentPlayer == null) { Debug.LogError("没有Player,无法读档"); return; } // File string gameDataFile = GetDataPath() + "/" + dataFileName; if (gameData != null) { Debug.Log("直接从运行时存档读取数据"); } else if (xs.hasFile(gameDataFile)) { string dataString = xs.LoadXML(gameDataFile); GameData gameDataFromXML = xs.DeserializeObject(dataString, typeof(GameData)) as GameData; //是合法存档 if (gameDataFromXML != null && gameDataFromXML.key == SystemInfo.deviceUniqueIdentifier) { //将存档赋给当前实例 Debug.Log("已读取存档"); gameData = gameDataFromXML; } else { gameData = new GameData(); // 创建初始存档 Debug.Log("非法存档,重新创建新存档"); //将存档写入XML文件 dataString = xs.SerializeObject(gameData, typeof(GameData)); xs.CreateXML(gameDataFile, dataString); } } else { gameData = new GameData(); // 创建初始存档 Debug.Log("创建新存档于" + gameDataFile); //将存档写入XML文件 string dataString = xs.SerializeObject(gameData, typeof(GameData)); xs.CreateXML(gameDataFile, dataString); } // LoadData值类型 currentPlayer.Name = gameData.Name; currentPlayer.Rank = gameData.Rank; currentPlayer.Gold = gameData.Gold; currentPlayer.MedicineID = gameData.MedicineID; currentPlayer.CanAttack2 = gameData.CanAttack2; currentPlayer.CanAttack3 = gameData.CanAttack3; currentPlayer.CanAvoid = gameData.CanAvoid; currentPlayer.CanDush = gameData.CanDush; // 引用类型 currentPlayer.PropNum = gameData.PropNum; currentPlayer.Fit = gameData.Fit; currentPlayer.HasProp = gameData.HasProp; currentPlayer.TasksData = gameData.TasksData; currentPlayer.PlayerMedi.FitEquip(); }
public void Load() { string gameDataFile = "Save/systemsave.sav"; if (!xs.hasFile(gameDataFile)) { Create(); } { string dataString = xs.LoadXML(gameDataFile); SystemData gameDataFromXML = xs.DeserializeObject(dataString, typeof(SystemData)) as SystemData; systemdata = gameDataFromXML; //Debug.Log(systemdata.character[0]); } }
//读档时调用的函数,游戏开始时Player自动读档,如果没有存档那么自动创建// public void Load(IPlayer currentPlayer) { if (currentPlayer == null) { Debug.LogError("没有Player,无法读档"); return; } // File string gameDataFile = GetDataPath() + "/" + dataFileName; if (gameData != null) { Debug.Log("直接从运行时存档读取数据"); } else if (xs.hasFile(gameDataFile)) { string dataString = xs.LoadXML(gameDataFile); GameData gameDataFromXML = xs.DeserializeObject(dataString, typeof(GameData)) as GameData; //是合法存档// if (gameDataFromXML != null && gameDataFromXML.key == SystemInfo.deviceUniqueIdentifier) { //将存档赋给当前实例 Debug.Log("已读取存档"); gameData = gameDataFromXML; } else { gameData = new GameData(); // 创建初始存档 Debug.Log("非法存档,重新创建新存档"); //将存档写入XML文件 dataString = xs.SerializeObject(gameData, typeof(GameData)); xs.CreateXML(gameDataFile, dataString); } } else { gameData = new GameData(); // 创建初始存档 Debug.Log("创建新存档于" + gameDataFile); //将存档写入XML文件 string dataString = xs.SerializeObject(gameData, typeof(GameData)); xs.CreateXML(gameDataFile, dataString); } // TODO:这里读取数据 // 如currentPlayer.Name = gameData.Name; }
//读档时调用的函数// public static SaveAble Load(System.Type type) { string gameDataFile = Utils.GetDataPath() + "/" + type.Name + ".xml"; if (xs.hasFile(gameDataFile)) { try { string dataString = xs.LoadXML(gameDataFile); object gameDataFromXML = xs.DeserializeObject(dataString, type); SaveAble sa = (SaveAble)gameDataFromXML; if (null != sa && sa.key == GDM.UKey) { //是合法存档// SaveAble t = (SaveAble)sa; Debug.Log("读档成功......"); return(t); } else { //是非法拷贝存档// string fileKey = ""; if (null != sa) { fileKey = sa.key; } Debug.Log("不是本设备的存档!存档清除:key=" + GDM.UKey + "; FileKey=" + fileKey + "; File:" + type.Name); //留空:游戏启动后数据清零,存档后作弊档被自动覆盖// } } catch (System.Exception e) { Debug.Log("存档Load出错!存档清除:key=" + GDM.UKey + "; File:" + type.Name); Debug.Log("e.Message: " + e.Message); } } return(null); }
//读档时调用的函数,游戏开始时Player自动读档,如果没有存档那么自动创建// public GameData Load() { string gameDataFile = GetDataPath() + "/" + dataFileName; if (xs.hasFile(gameDataFile)) { string dataString = xs.LoadXML(gameDataFile); GameData gameDataFromXML = xs.DeserializeObject(dataString, typeof(GameData)) as GameData; //是合法存档// if (gameDataFromXML.key == SystemInfo.deviceUniqueIdentifier) {//将存档赋给当前实例 Debug.Log("已读取存档"); gameData = gameDataFromXML; return(gameData); } //是非法拷贝存档// //留空:游戏启动后数据清零,存档后作弊档被自动覆盖// } gameData = new GameData(); // 创建初始存档 Save(); return(gameData); }
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; } } }
private void LoadMap(string MapName) { XmlSaver xs = new XmlSaver(); string path = "Level/" + MapName + ".lv"; if (xs.hasFile(path)) { string datastring = xs.LoadXML(path); LevelInfo 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; string name = li.name; float x = li.x; float y = li.y; if (li.tag != "Player" || (li.tag == "Player" && player == null)) { GameObject pre = Resources.Load("Prefabs\\" + tag + "\\" + name, typeof(GameObject)) as GameObject; if (!pre) { Debug.Log("tile " + name + " load failed."); } pre = Instantiate(pre, new Vector3(x, y, 0), Quaternion.identity); pre.name = name; } else { player.transform.position = new Vector3(x, y, 0); Camera.main.GetComponent <CameraFollow>().FindCurrentRoom(); } } foreach (EventItem ei in levelinfo.events) { string tag = "Event"; string name = ei.name; float x = ei.x; float y = ei.y; GameObject pre = Resources.Load("Prefabs\\" + tag + "\\" + name, typeof(GameObject)) as GameObject; if (!pre) { Debug.Log("tile " + name + " load failed."); } pre = Instantiate(pre, new Vector3(x, y, 0), Quaternion.identity); pre.name = name; if (name == "GotoPlot") { pre.GetComponent <Plot>().plotno = ei.arg; } else if (name == "GotoScene") { pre.GetComponent <GotoScene>().scenename = ei.arg; } } } else { Debug.Log("the level data does not exist."); } }