【ハルシオンブログ】データ保存をJsonでやってみた。
こんにちは。
大坂です。
秋らしくなってきたようなそうでもないような?
関東でまだ30度超える日がるみたいなので早く涼しくなってほしいですね。
今更ですがデータの保存をJsonにしてやってみたのでこんな感じだったよというお話。
まぁ簡単にこんな感じでゲームの情報を持ってるクラスを作って。
こんな感じでセーブとロードのクラスも作ってあげれば終わりです。
セーブしてあげると、指定したパスこんな感じの内容のファイルができてますね!

取り合ずこんな感じで簡単にできたよというお話でした。
あ、ついでにデータ消すときにわざわざ作った場所に行って消すのが面倒な場合は
こんなメソッド作って実行すればいいですね。
では今週もこんな感じで終わりです。
またノシ
大坂です。
秋らしくなってきたようなそうでもないような?
関東でまだ30度超える日がるみたいなので早く涼しくなってほしいですね。
今更ですがデータの保存をJsonにしてやってみたのでこんな感じだったよというお話。
まぁ簡単にこんな感じでゲームの情報を持ってるクラスを作って。
using System;
[Serializable]
public class GameData {
public int money;
public CharacterData charaData;
[Serializable]
public class CharacterData {
public int level;
public int hp;
public void Init() {
level = 1;
hp = 100;
}
}
public void Init() {
money = 500;
charaData = new CharacterData();
charaData.Init();
}
}
こんな感じでセーブとロードのクラスも作ってあげれば終わりです。
using System.IO;
using UnityEngine;
public class SaveTest : MonoBehaviour {
string filePath;
public GameData gameData;
private void Start() {
filePath = Application.persistentDataPath + "/SaveData.json";
Load();
}
public void Save() {
using(FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write)) {
using(StreamWriter sw = new StreamWriter(fs)) {
sw.WriteLine(JsonUtility.ToJson(gameData));
}
}
}
public void Load() {
if(!File.Exists(filePath)) {
gameData = new GameData();
gameData.Init();
return;
}
using(FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)) {
using(StreamReader sr = new StreamReader(fs)) {
GameData data = JsonUtility.FromJson(sr.ReadToEnd());
gameData = data;
}
}
}
}
セーブしてあげると、指定したパスこんな感じの内容のファイルができてますね!

取り合ずこんな感じで簡単にできたよというお話でした。
あ、ついでにデータ消すときにわざわざ作った場所に行って消すのが面倒な場合は
こんなメソッド作って実行すればいいですね。
public void Delete() {
if(File.Exists(filePath)) {
FileInfo fi = new FileInfo(filePath);
fi.Delete();
}
}
では今週もこんな感じで終わりです。
またノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】3Dキャラの頭の上とかにUIとか出すじゃないですか。アレ | 【ハルシオンブログ】複数シーンをまとめて呼ぶ方法。1画面が複数シーンでつくられている場合、Additiveでシーンを呼びますよね。 »
コメント
| h o m e |