How do I save the state of a toggle button?
My code works, currently I'm working on the audio and this script makes it all work smoothly other then the fact that if I leave the scene and come back (audio still working fine) and go back to the place where the toggle is, the toggle with be true, even if it should be false (aka the music is off)(And the music is not playing, and to turn it on I have to uncheck the toggle (again giving the value to off, and then turning it back to on again); this will make sense after seeing the code (the MusicBool function runs on value change of the toggle):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MusicScriptFinally : MonoBehaviour
{
public GameObject Music;
public void Start()
{
CheckMusic();
}
public void CheckMusic()
{
if (PlayerPrefs.HasKey("MusicOn"))
{
if (PlayerPrefs.GetInt("MusicOn") > 0)
{
Music.SetActive(true);
}
else
{
Music.SetActive(false);
}
}
else
{
PlayerPrefs.SetInt("MusicOn", 1);
Music.SetActive(true);
}
}
public void MusicBool(bool value)
{
if (value == true)
{
PlayerPrefs.SetInt("MusicOn", 1);
}
else
{
PlayerPrefs.SetInt("MusicOn", 0);
}
CheckMusic();
}
}
It still doesn't work for me. I just can't believe i'm stuck on this simple thing since many hours now. I'm looking all over the internet and i can't find anyone with the solution, its amazing. Can Someone Post the RIGHT sollution in only 1 post, once and for all please ?
Answer by ChompIV · Jun 08, 2018 at 09:35 PM
Solved it by adding the code in between the 2 "//"
public GameObject Music;
//
public Toggle MusicToggle;
//
public void Start()
{
CheckMusic(); //
bool MusicBool = (PlayerPrefs.GetInt("MusicOn") == 1) ? true : false;
MusicToggle.isOn = MusicBool;
//
}
Not relevant/off-topic - Impossible that this is the solution. It is an answer to the user's own question so it must have been resolved in some other way. It came to my attention because some other user was being confused by the answer and it should probably, therefore, be removed from unity answers.
Your answer
Follow this Question
Related Questions
Undesirable call of Toggle's "On Value Changed" when "isOn" is changed through script 2 Answers
Toggle UI Text With UI Toggle Button 1 Answer
Toggable music and saving of music state 1 Answer
I want Toggle Group Savescript. When i restart the game. the game disable all toggle. 0 Answers
Using PlayerPrefs to store string but it won't update on my UI 1 Answer