/// <summary> /// Saves the given models and potentially all models referenced by the given models into modelBlobs. /// </summary> /// <param name="models">The models that will be saved, potentially along with the models they have references to.</param> /// <param name="saveReferenced">Whether the given models should also save their referenced models.</param> /// <returns>All models in form of modelBlobs, xml formatted strings order by id.</returns> public static ModelBlobs Save(List <Model> models, bool saveReferenced) { if (models == null) { UnityEngine.Debug.LogError("Can't save Models if the given list is null"); return(null); } models.Distinct <Model>(); if (saveReferenced) { foreach (Model model in models) { models.AddList <Model>(model.GetReferences()); } } models.Distinct <Model>(); ModelBlobs modelBlobs = new ModelBlobs(); modelBlobs.Add("manifest", Manifest.Save(models)); isSerializing = true; foreach (Model model in models) { modelBlobs.Add(model.Id, model.XmlSerializeToString()); } isSerializing = false; return(modelBlobs); }
private static ModelBlobs FromStringArray(string[] splittedData) { ModelBlobs modelBlobs = new ModelBlobs(); string id = null; foreach (string blob in splittedData) { if (string.IsNullOrEmpty(id)) { id = blob; } else { modelBlobs.Add(id, blob); id = null; } } return(modelBlobs); }