/**
         * <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;
        }
Example #2
0
        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));
        }