/// <summary> /// Encrypted version of EditorPrefs.SetBool(), stored key and value is encrypted in player prefs /// </summary> public static void SetEncryptedBool(string key, bool value) { string encryptedKey = SimpleEncryption.EncryptString(key); string encryptedValue = SimpleEncryption.EncryptBool(value); // Store the encrypted key and value (with relevant identifying prefixes) in PlayerPrefs PlayerPrefs.SetString(KEY_PREFIX + encryptedKey, VALUE_BOOL_PREFIX + encryptedValue); }
/// Encrypts the specified bool value and returns an encrypted string /// </summary> public static string EncryptBool(bool value) { // Convert the bool value into its 4 bytes byte[] bytes = BitConverter.GetBytes(value); // Represent those bytes as a base 64 string string base64 = Convert.ToBase64String(bytes); // Return the encrypted version of that base 64 string return(SimpleEncryption.EncryptString(base64)); }
/// <summary> /// Encrypted version of EditorPrefs.GetBool(), an unencrypted key is passed and the value is returned decrypted /// </summary> public static bool GetEncryptedBool(string key, bool defaultValue = false) { // Encrypt and prefix the key so we can look it up from player prefs string encryptedKey = KEY_PREFIX + SimpleEncryption.EncryptString(key); // Look up the encrypted value string fetchedString = PlayerPrefs.GetString(encryptedKey); if (!string.IsNullOrEmpty(fetchedString)) { // Strip out the type identifier character fetchedString = fetchedString.Remove(0, 1); // Decrypt and return the int value return(SimpleEncryption.DecryptBool(fetchedString)); } else { // No existing player pref value, so return defaultValue instead return(defaultValue); } }