/// <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);
        }
Esempio n. 2
0
 /// <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);
     }
 }
Esempio n. 4
0
    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);
     }
 }