/// <summary> /// Get object from local storage from protobuf /// </summary> /// <typeparam name="T"></typeparam> /// <param name="val"></param> /// <param name="encryptKey"></param> /// <returns>Saved value</returns> public static T GetObjectFromProtobuf <T>(string dataName, string encryptKey = null) where T : class { if (!HasData(dataName)) { var ex = new Exception($"<{dataName}> does not exist\n" + $"<{dataName}>不存在"); Log.PrintError($"[JSaver] 错误:{ex.Message}, {ex.Data["StackTrace"]}"); return(null); } if (String.IsNullOrEmpty(encryptKey)) { encryptKey = defaultEncryptKey; } if (encryptKey.Length != 16) { throw new Exception("encryptKey needs to be 16 characters!"); } var result = PlayerPrefs.GetString(dataName); try { byte[] bytes = CryptoHelper.AesDecrypt(Convert.FromBase64String(result), encryptKey); return(StringifyHelper.ProtoDeSerialize <T>(bytes)); } catch (Exception ex) { Log.PrintError($"[JSaver] 错误:{ex.Message}, {ex.Data["StackTrace"]}"); return(default(T)); } }
/// <summary> /// Get object from local storage from protobuf /// </summary> /// <typeparam name="T"></typeparam> /// <param name="val"></param> /// <param name="encryptKey"></param> /// <returns>Saved value</returns> public static T GetObjectFromProtobuf <T>(string dataName, string encryptKey = null) where T : class { if (encryptKey == null) { encryptKey = Init.Instance.Key; } if (encryptKey.Length != 16) { throw new Exception("encryptKey needs to be 16 characters!"); } var result = PlayerPrefs.GetString(dataName); try { byte[] bytes = CryptoHelper.AesDecrypt(Convert.FromBase64String(result), encryptKey); return(StringifyHelper.ProtoDeSerialize <T>(bytes)); } catch (Exception ex) { Log.PrintError(ex); return(default(T)); } }