Save Publict Static Variables

I have a very large Class of public static variables (used for A customizable spaship the player can build) and they are not in an array.

I need to save these variables so that the player doesn’t have to rebuild the ship every time they exit and restart the game.

I am very confused about this. I just want a simple way to write the value of all the variable in the class to a file, and also to load the file to reset the variable back to what is saved. Here is a (VERY) small snip-it of the class I want to save.

(keep in mind this class has thousands of variables in this class so I need a way to save that will not require me to write a line of code for each and every variable)

(also C# please!!!)

//The parts that make up the players ship

public class Ship

{

public static GameObject hul;

public static GameObject aet1hul;

public static GameObject inp1hul;

public static GameObject shi1hul;

public static GameObject win1hul;
public static GameObject win2hul;
public static GameObject win3hul;
public static GameObject win4hul;
public static GameObject win5hul;
public static GameObject win6hul;
public static GameObject win7hul;
public static GameObject win8hul;

public static GameObject aug1hul;
public static GameObject aug2hul;
public static GameObject aug3hul;
public static GameObject aug4hul;
public static GameObject aug5hul;
public static GameObject aug6hul;
public static GameObject aug7hul;
public static GameObject aug8hul;

 //...ect...ect...ect...

}

Unity won’t serialize static variables on your scripts, as stated here. I recommend you to follow a singleton pattern on that behaviors (e.g. this) to save all your data or use the PlayerPrefs class to store it instead.