/// <summary> /// Tries to set the value to player prefs. If the value is successfully set, PlayerPrefs are saved. /// </summary> /// <param name="key">Key of value</param> /// <param name="value">Value for the key</param> /// <param name="type"> /// Type of the value. This determines whether PlayerPrefs.SetString(), PlayerPrefs.SetFloat(), or /// PlayerPrefs.SetInt() is used. /// </param> /// <returns>Response containing info telling if the set was successful or not.</returns> private static TrySetResponse TrySetValue(string key, string value, PlayerPrefsValueType type) { var respone = new TrySetResponse { Message = "Key: " + key + " with Value: " + value + " was successfully saved to PlayerPrefs as a " + type, Success = true, MessageType = MessageType.Info }; switch (type) { case PlayerPrefsValueType.String: PlayerPrefs.SetString(key, value); PlayerPrefs.Save(); break; case PlayerPrefsValueType.Float: float newValFloat; if (float.TryParse(value, out newValFloat)) { PlayerPrefs.SetFloat(key, newValFloat); PlayerPrefs.Save(); } else { respone.SetValues( "Couldn't parse input value:" + value + " to target type float. Input a valid float value.", false, MessageType.Error); } break; case PlayerPrefsValueType.Int: int newValInt; if (int.TryParse(value, out newValInt)) { PlayerPrefs.SetInt(key, newValInt); PlayerPrefs.Save(); } else { respone.SetValues( "Couldn't parse input value:" + value + " to target type int. Input a valid int value.", false, MessageType.Error); } break; default: respone.SetValues("Unknown PlayerPrefsValueType: " + type, false, MessageType.Error); break; } return(respone); }
/// <summary> /// Draw add key controls /// </summary> private void DrawAddKey() { GUILayout.Label("Add key", EditorStyles.boldLabel); addKey_m = EditorGUILayout.TextField("Key", addKey_m); addVal_m = EditorGUILayout.TextField("Value", addVal_m); addValType_m = (PlayerPrefsValueType)EditorGUILayout.EnumPopup("Type", addValType_m); if (GUILayout.Button("Add")) { addResponse_m = TrySetValue(addKey_m, addVal_m, addValType_m); } if (addResponse_m != null) { EditorGUILayout.HelpBox(addResponse_m.Message, addResponse_m.MessageType); } }
/// <summary> /// Draw add key controls /// </summary> private void DrawAddKey() { GUILayout.Label("Add key", EditorStyles.boldLabel); _addKeyM = EditorGUILayout.TextField("Key", _addKeyM); _addValM = EditorGUILayout.TextField("Value", _addValM); _addValTypeM = (PlayerPrefsValueType)EditorGUILayout.EnumPopup("Type", _addValTypeM); if (GUILayout.Button("Add")) { _addResponseM = TrySetValue(_addKeyM, _addValM, _addValTypeM); } if (_addResponseM != null) { EditorGUILayout.HelpBox(_addResponseM.Message, _addResponseM.MessageType); } }
private void DrawSearchKey() { GUILayout.Label("Search for key", EditorStyles.boldLabel); searchKey = EditorGUILayout.TextField("Key", searchKey); //Edit existing key if (PlayerPrefs.HasKey(searchKey)) { PlayerPrefsValueType type = GetType(searchKey); // Delete if (GUILayout.Button("Delete")) { PlayerPrefs.DeleteKey(searchKey); Debug.Log("PlayerPrefs key: " + searchKey + ", deleted"); } if (type == PlayerPrefsValueType.Unknown) { searchValType_m = (PlayerPrefsValueType)EditorGUILayout.EnumPopup("Type", searchValType_m); EditorGUILayout.HelpBox("The value for the key is a default value so the type cannot be determined. It is your responsibility to set the value in correct type.", MessageType.Warning); } else { searchValType_m = type; GUILayout.Label("Value type: " + searchValType_m, EditorStyles.boldLabel); GUILayout.Label("Current value: " + GetValue(searchKey, searchValType_m), EditorStyles.boldLabel); } // Set value GUILayout.Label("Set new value", EditorStyles.boldLabel); searchNewValue = EditorGUILayout.TextField("New value", searchNewValue); if (GUILayout.Button("Set")) { searchResponse = TrySetValue(searchKey, searchNewValue, searchValType_m); } if (searchResponse != null) { EditorGUILayout.HelpBox(searchResponse.message, searchResponse.messageType); } } else { EditorGUILayout.HelpBox("Key doesn't exist in player prefs", MessageType.Warning); } }
/// <summary> /// Tries to set the value to player prefs. If the value is successfully set, PlayerPrefs are saved. /// </summary> /// <param name="key">Key of value</param> /// <param name="value">Value for the key</param> /// <param name="type">Type of the value. This determines whether PlayerPrefs.SetString(), PlayerPrefs.SetFloat(), or PlayerPrefs.SetInt() is used.</param> /// <returns>Response containing info telling if the set was successful or not.</returns> private static TrySetResponse TrySetValue(string key, string value, PlayerPrefsValueType type) { TrySetResponse respone = new TrySetResponse() { message = "Key: " + key + " with Value: " + value + " was successfully saved to PlayerPrefs as a " + type, success = true, messageType = MessageType.Info }; switch (type) { case PlayerPrefsValueType.String: PlayerPrefs.SetString(key, value); PlayerPrefs.Save(); break; case PlayerPrefsValueType.Float: float newValFloat; if (float.TryParse(value, out newValFloat)) { PlayerPrefs.SetFloat(key, newValFloat); PlayerPrefs.Save(); } else { respone.SetValues("Couldn't parse input value:" + value + " to target type float. Input a valid float value.", false, MessageType.Error); } break; case PlayerPrefsValueType.Int: int newValInt; if (int.TryParse(value, out newValInt)) { PlayerPrefs.SetInt(key, newValInt); PlayerPrefs.Save(); } else { respone.SetValues("Couldn't parse input value:" + value + " to target type int. Input a valid int value.", false, MessageType.Error); } break; default: respone.SetValues("Unknown PlayerPrefsValueType: " + type, false, MessageType.Error); break; } return respone; }
/// <summary> /// Draw search for PlayerPrefs key controls /// </summary> private void DrawSearchKey() { GUILayout.Label("Search for key", EditorStyles.boldLabel); searchKey_m = EditorGUILayout.TextField("Key", searchKey_m); //Edit existing key if (PlayerPrefs.HasKey(searchKey_m)) { PlayerPrefsValueType type = GetType(searchKey_m); // Delete if (GUILayout.Button("Delete")) { PlayerPrefs.DeleteKey(searchKey_m); Debug.Log("PlayerPrefs key: " + searchKey_m + ", deleted"); } // Set value GUILayout.Label("Set new value", EditorStyles.boldLabel); searchNewVal_m = EditorGUILayout.TextField("New value", searchNewVal_m); if (type == PlayerPrefsValueType.Unknown) { searchValType_m = (PlayerPrefsValueType)EditorGUILayout.EnumPopup("Type", searchValType_m); EditorGUILayout.HelpBox("The value for the key is a default value so the type cannot be determined. It is your responsibility to set the value in correct type.", MessageType.Warning); } else { searchValType_m = type; GUILayout.Label("Value type: " + searchValType_m, EditorStyles.boldLabel); GUILayout.Label("Current value: " + GetValue(searchKey_m, searchValType_m), EditorStyles.boldLabel); } if (GUILayout.Button("Set")) { searchResponse_m = TrySetValue(searchKey_m, searchNewVal_m, searchValType_m); } if (searchResponse_m != null) { EditorGUILayout.HelpBox(searchResponse_m.message, searchResponse_m.messageType); } } else { EditorGUILayout.HelpBox("Key doesn't exist in player prefs", MessageType.Warning); } }
/// <summary> /// Draw add key controls /// </summary> private void DrawAddKey() { GUILayout.Label("Add key", EditorStyles.boldLabel); addKey_m = EditorGUILayout.TextField("Key", addKey_m); addVal_m = EditorGUILayout.TextField("Value", addVal_m); addValType_m = (PlayerPrefsValueType)EditorGUILayout.EnumPopup("Type", addValType_m); if (GUILayout.Button("Add")) { addResponse_m = TrySetValue(addKey_m, addVal_m, addValType_m); } if (addResponse_m != null) { EditorGUILayout.HelpBox(addResponse_m.message, addResponse_m.messageType); } }