/** * <summary>Deserialises a string of data, and restores the GameObject to its previous state.</summary> * <param name = "stringData">The data, serialised as a string</param> */ public override void LoadData(string stringData) { MaterialData data = Serializer.LoadScriptData <MaterialData> (stringData); if (data == null) { return; } Material[] mats = GetComponent <Renderer>().materials; string[] materialIDs = StringToStringArray(data._materialIDs); for (int i = 0; i < materialIDs.Length; i++) { if (mats.Length >= i) { Material _material = AssetLoader.RetrieveAsset(mats[i], materialIDs[i]); if (_material != null) { mats[i] = _material; } } } GetComponent <Renderer>().materials = mats; }
public override string SaveData() { MaterialData materialData = new MaterialData (); materialData.objectID = constantID; List<string> materialIDs = new List<string>(); Material[] mats = GetComponent <Renderer>().materials; foreach (Material material in mats) { materialIDs.Add (AssetLoader. GetAssetInstanceID (material)); } materialData._materialIDs = ArrayToString <string> (materialIDs.ToArray ()); return Serializer.SaveScriptData <MaterialData> (materialData); }
/** * <summary>Serialises appropriate GameObject values into a string.</summary> * <returns>The data, serialised as a string</returns> */ public override string SaveData() { MaterialData materialData = new MaterialData(); materialData.objectID = constantID; List <string> materialIDs = new List <string>(); Material[] mats = GetComponent <Renderer>().materials; foreach (Material material in mats) { materialIDs.Add(AssetLoader.GetAssetInstanceID(material)); } materialData._materialIDs = ArrayToString <string> (materialIDs.ToArray()); return(Serializer.SaveScriptData <MaterialData> (materialData)); }