public virtual void Save() { SplineBase[] splines = FindObjectsOfType <SplineBase>(); SplineSnapshots snapshots = new SplineSnapshots { Data = new SplineSnapshot[splines.Length] }; for (int i = 0; i < snapshots.Data.Length; ++i) { snapshots.Data[i] = splines[i].Save(); } string dataAsString = SerializeToString(snapshots); PlayerPrefs.SetString("SplineEditorSave", dataAsString); }
public virtual void Load() { string dataAsString = PlayerPrefs.GetString("SplineEditorSave"); if (string.IsNullOrEmpty(dataAsString)) { return; } SplineBase[] splines = FindObjectsOfType <SplineBase>(); SplineSnapshots snapshots = DeserializeFromString <SplineSnapshots>(dataAsString); //Should be replaced with more sophisticated load & save & validation logic if (splines.Length != snapshots.Data.Length) { Debug.LogError("Wrong data in save file"); return; //throw new NotImplementedException("Wrong data in save file."); } for (int i = 0; i < snapshots.Data.Length; ++i) { splines[i].Load(snapshots.Data[i]); } }