- Home /
save string from array to player prefs
How do I save a string from an array into player prefs and then reload that string back into the same array slot later on?
I thought it was was this but nope??
// Letters To Remember
public string[] CharsToRemember = new string[5];
private void Start()
{
PlayerPrefs.GetString("CharacterToRem", CharsToRemember[0].ToString());
Debug.Log("Characters Saved Loaded To Array");
}
// Add Character To "CharsToRemember" Array
public void AddChar_A()
{
sresult += "A";
}
string sresult = "";
IEnumerator ListenForInputSequenceUntilDone()
{
// Wait Time
yield return new WaitForSeconds(1.5f);
// Reset String For New inputs
sresult = "";
while (true)
{
if (LettersToRemIsDone == true) break;
string sval = Input.inputString;
if (!string.IsNullOrEmpty(sval))
{
sresult += sval;
}
yield return null;
}
Debug.Log(sresult);
CharsToRemember[0] = sresult;
PlayerPrefs.SetString("CharacterToRem", CharsToRemember[0].ToString());
Debug.Log("Character Saved To Player Prefs");
}
Why CharsToRemember[0].ToString() ??
CharsToRemember[0] is already a string!
Yeah, I know I was experimenting, This did not work either
PlayerPrefs.SetString("CharacterToRem", CharsToRemember[0]);
I thought it would grab all of the chars in the "CharsToRember[0]" Array slot 0 and save them but I do not believe it is. So I'm missing something
Answer by I5 · Sep 11, 2018 at 02:50 PM
Not sure I fully understand the goal/problem, but if you want to store 5 strings (as indicated in the code), I would just use 5 uniquely named preference keys (ex: "s1", "s2", "s3", "s4", "s5"). Trying to pack multiple pieces of distinct data in one preference property can often result in parsing errors and be tougher to maintain the code. As for your code, it looks like CharsToRemember (in the ListenForInputSequenceUntilDone method) is always setting array index 0. Should this be incrementing instead of always setting CharsToRemember[0] value?
I figured it out, the saving method was fine it was my load back in method that was out of whack, it should have been this:
CharsToRemember[0] = PlayerPrefs.GetString("CharacterToRem");
Your answer
Follow this Question
Related Questions
Save/load playerprefs 2 Answers
Problems with saving/loading score with PlayerPrefs [C#] 1 Answer
[Solved] PlayerPrefs Vector 3 Defaulting to 0,0,0 1 Answer
How i can PlayerPrefs List<>? 0 Answers