/// <summary> /// Load specified ISavable object from a binarydata as string already saved in PlayerPrefs /// </summary> /// <param name="savable">ISavable to load</param> /// <param name="keyString">key of binarydata in PlayerPrefs</param> public static void LoadBinaryFromPlayerPrefs(ISavable savable, string keyString, string password = null) { if (savable == null) { throw new ArgumentNullException("Invalid ISavable object."); } if (string.IsNullOrEmpty(keyString)) { throw new ArgumentException("Invalid key."); } string binaryAsStringData = null; if (password != null) { binaryAsStringData = SecurePlayerPrefs.GetString(keyString, password); } else { binaryAsStringData = UnityEngine.PlayerPrefs.GetString(keyString); } byte[] binaryData = ConvertStringToBytes(binaryAsStringData); MemoryStream stream = new MemoryStream(binaryData, false); PCBinaryLoadStream loadStream = new PCBinaryLoadStream(stream); LoadFromStream(savable, loadStream); loadStream.Close(); }
/// <summary> /// Load specified ISavable object from a xml string already saved in PlayerPrefs /// </summary> /// <param name="savable">ISavable to load</param> /// <param name="keyString">key of xmldata in PlayerPrefs</param> public static void LoadXmlFromPlayerPrefs(ISavable savable, string keyString, string password = null) { if (savable == null) { throw new ArgumentNullException("Invalid ISavable object."); } if (string.IsNullOrEmpty(keyString)) { throw new ArgumentException("Invalid key."); } string xmlContent = null; if (password != null) { xmlContent = SecurePlayerPrefs.GetString(keyString, password); } else { xmlContent = UnityEngine.PlayerPrefs.GetString(keyString); } LoadFromXmlContent(savable, xmlContent); }