Problem to add on List (Serializable class)

Hi!

I’m making a Save&Load class and using a private class that will be serializable.
Occurs that I can’t add Vector2 values in a list<> that is in this serializable class.
Follow the code:

public void Save() {
        
        BinaryFormatter bf = new BinaryFormatter();
        FileStream file = File.Create (Application.persistentDataPath + "/savedGames.data");

        SaveManager saver = new SaveManager();
        saver.keys.Add(new Vector2(valueX,valueY);

        bf.Serialize(file, saver);
        file.Close();
}  
[Serializable]
class SaveManager
{
     public List<Vector2> keys;
}

I have made the save system with a simple value (int) to test, and works. But, with List unity says: “NullReferenceException: Object reference not set to an instance of an object”

Maybe is a nobie think. Please, help me! :slight_smile:

Obs.: valueX and valueY is just for exemplo.

In your SaveManager class, you never created a List instance for the keys property. That should probably be:

public List<Vector2> keys = new List<Vector2>();

Ok. Solved!

It seens that Unity doesn’t serialize Vector2, so I used two lists of float to works.

class SaveManager
{
    public List<float> keysTime = new List<float>();
    public List<float> keysValue = new List<float>();
}

Thanks for the help @jgodfrey!