我正在 Unity 中为 android 开发一款游戏,我想有 3 个保存文件。在每个保存文件中,我需要能够跟踪锁定/解锁的角色,锁定/解锁的关卡以及玩家硬币和其他一些玩家信息。
我一直在使用 PlayerPrefs 来保存信息,但我不确定这是否是最好的方法,因为似乎有一些我想保存的信息退出。
使用PlayerPrefs是保存此信息的最佳方法,还是有更好的保存方法?
在您的情况下,最好的选择是保存在 Application.persistentDataPath
.
阅读:
int saveNumber = 1;
string saveFileName = "save_" + saveNumber.ToString();
StreamReader sr = new StreamReader (string.Format ("{0}/{1}.json", Application.persistentDataPath, saveFileName));
string t = sr.ReadToEnd ();
sr.Close ();
只需使用您的逻辑选择您要查找的保存文件的数量。当然,也可以根据需要解析它。
编辑:
需要明确的是,您也可以轻松地做到这一点 PlayerPrefs
.
假设您有 3 个 JSON 对象,要使用此选项保存它们,请执行以下操作:
// To Save:
SimpleJSON.JSONClass save_1;
SimpleJSON.JSONClass save_2;
SimpleJSON.JSONClass save_3;
PlayerPrefs.SetString ("save_1", save_1.ToString ());
PlayerPrefs.SetString ("save_2", save_2.ToString ());
PlayerPrefs.SetString ("save_3", save_3.ToString ());
// And to read:
SimpleJSON.JSONClass save_1 = JSON.Parse(PlayerPrefs.GetString ("save_1")).AsObject;
SimpleJSON.JSONClass save_2 = JSON.Parse(PlayerPrefs.GetString ("save_2")).AsObject;
SimpleJSON.JSONClass save_3 = JSON.Parse(PlayerPrefs.GetString ("save_3")).AsObject;
PlayerPrefs.Save();