コード例 #1
0
    public static void SaveLocalUserData(string userId)
    {
        BinaryFormatter       bf = new BinaryFormatter();
        List <UserDataBinary> playerDataList;
        FileStream            file = File.Open(PersistentDataPath + "/PlayerData.dat", FileMode.OpenOrCreate);

        if (file.Length > 0)
        {
            playerDataList = (List <UserDataBinary>)bf.Deserialize(file);
        }
        else
        {
            playerDataList = new List <UserDataBinary>();
        }

        bool found = false;

        foreach (UserDataBinary player in playerDataList)
        {
            if (player.UserID == userId)
            {
                player.BoneNumber             = ApplicationModel.CurrentBoneNumber;
                player.Level                  = ApplicationModel.CurrentLevel;
                player.ModifiedDatetimeBinary = DateTime.Now.ToBinary();
                Debug.Log(String.Format("Local user data saved: {0}", player.UserID));
                found = true;
                break;
            }
        }
        if (!found)
        {
            UserDataBinary newPlayer = new UserDataBinary();
            newPlayer.InitFromApplicationModel();
            Debug.Log(String.Format("Local user data saved to new file: {0}", newPlayer.UserID));
            playerDataList.Add(newPlayer);
        }

        bf.Serialize(file, playerDataList);
        file.Close();
    }