- Home /
PlayerPrefsX.SetBoolArray not saving
Hey all,
I've written some code which is used for unlocking gear in my game. Essentially, if unlockList is true, then hgBoolList becomes true and an image that is placed over an object is removed and the player can click the object and equip the gear. The code works fine but SetBoolArray does not seem to be saving the PlayerPref value.
public void _Long1Unlock(){
if (gm.totalCoinsCollected >= baseCost && hgBoolList[1] == false) {
unlockList[1] = true;
PlayerPrefsX.SetBoolArray("Unlock", unlockList);
//PlayerPrefs.SetInt("UnlockHG1", 1);
gm.totalCoinsCollected -= baseCost;
}else {
errorFlash = true;
StartCoroutine("ErrorTime");
}
}
public void _Long1(){
if (unlockList[1] = true){
PlayerPrefs.SetInt ("Headgear", 1);
print ("Long1 equipped");
}
}
public void Update(){
PlayerPrefsX.GetBoolArray("Unlock");
print ("HG Unlock List " +unlockList[1]);
print ("HG Bool List " +hgBoolList [1]);
print ("HG Img List " +imgList[1].enabled);
for (int i = 0; i < unlockList.Length; i++) {
if (unlockList [i] == true ) {
hgBoolList[i] = true;
}
}
for (int i = 0; i < hgBoolList.Length; i++) {
if (hgBoolList [i] == true) {
imgList [i].enabled = false;
}
}
}
If anyone could explain why it isn't working, it would be much appreciated.
Many thanks,
Takz
Answer by bigChris · Dec 19, 2019 at 10:14 PM
Late, but here is answer.
Change line 23 PlayerPrefsX.GetBoolArray("Unlock");
to
unlockList = new bool[] {};
unlocklist = PlayerPrefsX.GetBoolArray("Unlock");
But, unless you have a valid reason, this should be placed just before starting Update(). Additionally, some error checking would be in order to handle the case of player clearing registry entries, or for the case of a new game install where PlayerPrefs are not yet set. Something like:
if(unlocklist.Length != expectedValue) {
unlocklist = myDefault_unlocklist_Array;
}
Your answer
Follow this Question
Related Questions
For In Loop Fills all values in arrays problem 2 Answers
How to save an array to PlayerPrefs? 1 Answer
My MonoBehaviour Doesnt seem to have PlayerPrefsX..? 1 Answer
PlayerPrefsX IntArray 1 Answer
How to clone an ArrayList? 1 Answer