Save / Load Locale Error

I have this Error, but do not know exactly what it means.

I know that its related to Saving and loading between scenes. but otherwise i am quite lost. Right now its stopping me from exiting my scene and this error shows up at the start and end of the scene.

This is the functions of all 3 references it gives me. In separate scripts.

private void Start()
    {
        LoadSaveData();
        GetSaveData();
        LoadSystemSettings();
    }
    public SystemSettings Load()
    {
        if (File.Exists(SAVE_PATH) == false)
        {
            return null;
        }

        XmlSerializer serializer = new XmlSerializer(typeof(SystemSettings));
        FileStream stream = new FileStream(SAVE_PATH, FileMode.Open);
        SystemSettings settings = serializer.Deserialize(stream) as SystemSettings;
        stream.Close();

        return settings;
    }
  public void LoadSystemSettings()
    {
        settingsSerializer = new SettingsSerializer();
        settings = settingsSerializer.Load();

        if (settings == null)
        {
            settings = new SystemSettings();
            settings.currentLocale = English.ChangeToLocale;
            settingsSerializer.Save(settings);
        }
    }

I don’t know what your SettingsSerializer looks like but don’t serialize the whole locale. If you want to keep track of the current locale then storing the locale.Identifier.Code should be enough. You can then use this to get the correct Locale from LocalizationSetyings.AvailableLocales

1 Like

This is my SettingsSerializer. I dont know if it helps.

public class SettingsSerializer : MonoBehaviour
{
    private static string SAVE_PATH = Application.persistentDataPath + "/SystemSettings.xml";

    public void Save(SystemSettings settings)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(SystemSettings));
        FileStream stream = new FileStream(SAVE_PATH, FileMode.Create);
        serializer.Serialize(stream, settings);
        stream.Close();

        Debug.Log("Saved succesfully in" + SAVE_PATH);
    }

    public SystemSettings Load()
    {
        if (File.Exists(SAVE_PATH) == false)
        {
            return null;
        }

        XmlSerializer serializer = new XmlSerializer(typeof(SystemSettings));
        FileStream stream = new FileStream(SAVE_PATH, FileMode.Open);
        SystemSettings settings = serializer.Deserialize(stream) as SystemSettings;
        stream.Close();

        return settings;
    }

}