在unity3d中保存多个游戏文件

时间:2016-02-23 16:27:25

标签: c# android unity3d

我正在开发一款针对Android的游戏,我想拥有3个保存文件。在每个保存文件中,我需要能够跟踪锁定/解锁的角色,锁定/解锁的级别,以及玩家硬币和其他一些玩家信息。

我一直在使用PlayerPrefs来保存信息,但我不确定它是否是最好的方法,因为似乎要退出一些我要保存的信息。

使用PlayerPrefs是保存此信息的最佳方法还是有更好的方法来保存它?

1 个答案:

答案 0 :(得分:2)

在您的情况下,最佳选择是保存在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();