- Home /
 
               Question by 
               naveboy34 · Mar 25, 2020 at 11:33 PM · 
                playerprefssavingsave datasaveload  
              
 
              PlayerPrefs.GetString not saving past values
While following a tutorial for making custom Key Bindings, I noticed that the key bindings were not saving after I left the game. I have tried going back into the tutorial multiple times to troubleshoot, but I can't find any reason why PlayerPrefs.GetString() still returns the default value. Any help is much appreciated!!
Code:
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.UI;
 
 public class CustomKeys : MonoBehaviour
 {
     private Dictionary<string, KeyCode> 
     keys = new Dictionary<string, KeyCode>();
 
     public Text Green, Red, Yellow, Blue, Orange;
 
     private GameObject currentKey;
 
     private void Start()
     {
         keys.Add("Green Fret", (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("Green Fret", "A")));
         keys.Add("Red Fret", (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("Red Fret", "S")));
         keys.Add("Yellow Fret", (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("Yellow Fret", "D")));
         keys.Add("Blue Fret", (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("Blue Fret", "J")));
         keys.Add("Orange Fret", (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("Orange Fret", "K")));
 
         Green.text = keys["Green Fret"].ToString();
         Red.text = keys["Red Fret"].ToString();
         Yellow.text = keys["Yellow Fret"].ToString();
         Blue.text = keys["Blue Fret"].ToString();
         Orange.text = keys["Orange Fret"].ToString();
     }
 
     private void Update()
     {
 
     }
 
     private void OnGUI()
     {
         if (currentKey != null)
         {
             Event e = Event.current;
             if (e.isKey)
             {
                 keys[currentKey.name] = e.keyCode;
                 currentKey.transform.GetChild(0).GetComponent<Text>().text = e.keyCode.ToString();
                 currentKey = null;
             }
         }
     }
 
     public void ChangeKey(GameObject clicked)
     {
         currentKey = clicked;
     }
 
     public void SaveKeys()
     {
         foreach (var key in keys)
         {
             PlayerPrefs.SetString(key.Key, key.Value.ToString());
             PlayerPrefs.Save();
         }
         PlayerPrefs.Save();
         Debug.Log("Keys Saved!");
     }
 }
 
               Comment
              
 
               
              Your answer
 
 
             Follow this Question
Related Questions
Why does PlayerPrefs save to the Windows Registry? 0 Answers
Save Datasets at runtime 2 Answers
Google play services saved games highscore error 0 Answers
Unity problem when i convert playerprefs save to the standard file io save 0 Answers
How do I make a basic easy Save and load function with JavaScript 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                