public object LoadFromBinaryFile(string path) { ////WebPlayer の場合保存方法に変化を入れる //if (Application.platform == RuntimePlatform.WindowsWebPlayer || Application.platform == RuntimePlatform.OSXWebPlayer) { // string json = PlayerPrefs.GetString (path); // SaveObject obj = LitJson.JsonMapper.ToObject<SaveObject> (json); // return obj; //} else { if (!File.Exists(path)) { return(null); } FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(path, System.Text.Encoding.Default); string json = sr.ReadToEnd(); if (json == "") { return(null); } SaveObject obj = LitJson.JsonMapper.ToObject <SaveObject> (json); sr.Close(); fs.Close(); return(obj); //} }
public void SaveToBinaryFile(SaveObject obj, string path) { string json = LitJson.JsonMapper.ToJson(obj); //WebPlayer の場合保存方法に変化を入れる if (!Directory.Exists(storagePath)) { Directory.CreateDirectory(storagePath); } FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write); StreamWriter sw = new StreamWriter(fs); sw.Write(json); sw.Flush(); sw.Close(); fs.Close(); }
//ゲームをロードします public void loadData(string data_name) { Debug.Log("load files "); SaveObject sobj = this.saveManager.getSaveData(data_name); Dictionary <string, Image> dic = sobj.dicImage; //イメージオブジェクトを画面に復元する foreach (KeyValuePair <string, Image> kvp in sobj.dicImage) { //画面を復元していきまする Image image = new Image(dic [kvp.Key].dicSave); image.dicFace = dic [kvp.Key].dicFace; this.imageManager.addImage(image); } //タグも復元 this.imageManager.dicTag = sobj.dicTag; this.eventManager.dicEvent = sobj.dicEvent; this.scenarioManager = sobj.scenarioManager; StatusManager.variable = sobj.variable; //グローバルで置き換える NovelSingleton.GameManager.saveManager.loadGlobal(); StatusManager.variable.replaceAll("global", NovelSingleton.GameManager.globalSetting.globalVar); //開始位置の確認 StatusManager.currentScenario = sobj.currentFile; this.CurrentComponentIndex = sobj.currentIndex - 1; this.loadScenario(StatusManager.currentScenario); StatusManager.enableClickOrder = true; //テキストを復元する NovelSingleton.GameView.messageArea.GetComponent <Text>().text = sobj.currentMessage; //現在の色が設定されている場合は色も復元 if (StatusManager.currentTextColor != "") { NovelSingleton.GameView.messageArea.GetComponent <Text>().color = ColorX.HexToRGB(StatusManager.currentTextColor); } NovelSingleton.GameManager.scene.messageForSaveTitle = sobj.currentMessage; //ステータス復元 StatusManager.visibleMessageFrame = sobj.visibleMessageFrame; StatusManager.enableNextOrder = sobj.enableNextOrder; StatusManager.enableEventClick = sobj.enableEventClick; StatusManager.enableClickOrder = sobj.enableClickOrder; StatusManager.currentPlayBgm = sobj.currentPlayBgm; StatusManager.isEventStop = sobj.isEventStop; //Debug.Log ("wwww:" + sobj.isEventStop); NovelSingleton.GameManager.logManager = sobj.logManager; //メッセージウィドウが表示状態なら、ここで表示する if (StatusManager.visibleMessageFrame == true) { NovelSingleton.GameView.showMessageWithoutNextOrder(0f); } else { NovelSingleton.GameView.hideMessageWithoutNextOrder(0f); } if (StatusManager.currentPlayBgm != "") { Novel.AbstractComponent cmp = NovelSingleton.GameManager.parser.makeTag("[playbgm wait=false next=false storage='" + StatusManager.currentPlayBgm + "']"); cmp.start(); } //何故か、、ここにいれないと。メッセージがすごく遅くなる NovelSingleton.GameManager.scene.messageSpeed = 0.02f; this.nextOrder(); //画面を再現します ImageObject のみ }
public void SaveToBinaryFile(SaveObject obj, string path) { string json = LitJson.JsonMapper.ToJson (obj); //WebPlayer の場合保存方法に変化を入れる if (Application.platform == RuntimePlatform.WindowsWebPlayer || Application.platform == RuntimePlatform.OSXWebPlayer) { PlayerPrefs.SetString(path, json); } else { if (!Directory.Exists(storagePath)) { Directory.CreateDirectory(storagePath); } FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write); StreamWriter sw = new StreamWriter(fs); sw.Write(json); sw.Flush (); sw.Close (); fs.Close(); } }
//plus が true の場合は、一つ進めたところをロードさせる。sleepgameの後とか戻ってきた時用 public void save(string save_name,bool plus =false){ SaveObject sobj = new SaveObject (); sobj.name = save_name; //タイトルとか、基本情報を格納 sobj.title = NovelSingleton.GameManager.scene.messageForSaveTitle; sobj.date = DateTime.Now.ToString ("yyyy/MM/dd HH:mm:ss"); sobj.currentMessage = NovelSingleton.GameManager.scene.messageForSaveTitle; sobj.dicImage = NovelSingleton.GameManager.imageManager.dicImage; sobj.dicTag = NovelSingleton.GameManager.imageManager.dicTag; sobj.dicEvent = NovelSingleton.GameManager.eventManager.dicEvent; sobj.scenarioManager = NovelSingleton.GameManager.scenarioManager; sobj.variable = StatusManager.variable; sobj.currentFile = StatusManager.currentScenario; sobj.currentIndex = NovelSingleton.GameManager.CurrentComponentIndex; sobj.logManager = NovelSingleton.GameManager.logManager; //ステータス sobj.visibleMessageFrame = StatusManager.visibleMessageFrame; sobj.enableNextOrder = StatusManager.enableNextOrder; sobj.enableEventClick = StatusManager.enableEventClick; sobj.enableClickOrder = StatusManager.enableClickOrder; sobj.currentPlayBgm = StatusManager.currentPlayBgm; sobj.isEventStop = StatusManager.isEventStop; //画面のキャプチャを作成して保存する //保存先のパス if (plus == true) { sobj.currentIndex++; } //sobjをシリアライズ化して保存 string path = storagePath + "/"+save_name+".sav"; SaveToBinaryFile(sobj, path); }