Saving In Between Scenes and Program Exit
Hi All,
I am making a game in Unity 2D and all of my scripts are made in C#. This is my code and I have tried many times to add a saving feature (saves users choice in the options, eg difficulty). I have tried via playerpreferences (I know it is insecure but there would be no reason for a user to edit their options data) but have failed and deleted it. Could anyone help me? All I want it to do is save the float Multiplayer to the disk so it stays like that in between scenes and on app shut down. The code already has bits that would work well with this (it will read movement instantly to see if it has already been assigned a value, if not it will give it 0).
Thanks in advance!
PS, lots of the script is unrelated, it is also used to trigger an animation.
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class Menu_SettingsButtons : MonoBehaviour {
private int switching = 0;
private Animator fadeout;
private Animator UIfadeout;
public GameObject menusettingsfadeout;
public GameObject menusettingsUIfadeout;
private string scenetoswitchto;
public float Multiplayer;
private float timer = 1;
public Button multiplayerbutton;
public void Start (){
if (Multiplayer != 0 || Multiplayer != 1 || Multiplayer != 2) {
Multiplayer = 0;
}
if (Multiplayer == 0) {
multiplayerbutton.GetComponentInChildren<Text> ().text = "MULTIPLAYER - OFF";
} else if (Multiplayer == 1) {
multiplayerbutton.GetComponentInChildren<Text> ().text = "MULTIPLAYER - ON";
}
}
public void MenuSettingsBack (string menusettingsbackscene) {
switching = 1;
scenetoswitchto = menusettingsbackscene;
fadeout = menusettingsfadeout.GetComponent<Animator> ();
UIfadeout = menusettingsUIfadeout.GetComponent<Animator> ();
}
public void MenuSettingsMultiplayer (float MenuSettingsMultiplayerClicked) {
if (MenuSettingsMultiplayerClicked == 1) {
Multiplayer++;
}
if (Multiplayer == 2) {
Multiplayer = 0;
}
if (Multiplayer == 0) {
multiplayerbutton.GetComponentInChildren<Text> ().text = "MULTIPLAYER - OFF";
}
else if (Multiplayer == 1) {
multiplayerbutton.GetComponentInChildren<Text> ().text = "MULTIPLAYER - ON";
}
}
void Update () {
if (switching == 1) {
fadeout.Play ("MenuSettingsLogoFadeOut");
UIfadeout.Play ("MenuSettingsUIFadeOut");
timer = timer - Time.deltaTime;
if (timer <= 0) {
SceneManager.LoadScene (scenetoswitchto);
}
}
}
}