//! Save xml.
 public void SaveXml(XmlWriter Writer, IEditor AssetDatabase)
 {
     // Write original prefab
     Writer.WriteAttributeString("prefab", AssetDatabase.GetAssetPath(AssetDatabase.GetPrefabParent(gameObject)));
     // Save instance
     m_Instance.SaveXml(Writer);
 }
Example #2
0
        //! Save.
        public void Save(IFormatter Formatter, Stream Stream_, IEditor AssetDatabase)
        {
            Formatter.Serialize(Stream_, m_PositionX);
            Formatter.Serialize(Stream_, m_PositionY);
            Formatter.Serialize(Stream_, m_Tiles);
            Formatter.Serialize(Stream_, m_Properties);

            // Serialize mesh
            Mesh mesh = GetComponent<MeshFilter>().sharedMesh;
            string asset_path = AssetDatabase.GetAssetPath(mesh);
            // Get only "Resources" relative path
            //			asset_path = asset_path.Substring(asset_path.IndexOf("Resources"));
            //			asset_path = asset_path.Substring(asset_path.IndexOf('/') + 1);
            //			asset_path = asset_path.Substring(0, asset_path.LastIndexOf('.'));

            Formatter.Serialize(Stream_, asset_path);

            // Serialize materials
            var materials = GetComponent<MeshRenderer>().sharedMaterials;
            Formatter.Serialize(Stream_, materials.Length);
            foreach (var mat in materials)
            {
                string material_path = AssetDatabase.GetAssetPath(mat);
                material_path = material_path.Substring(material_path.IndexOf("Resources"));
                material_path = material_path.Substring(material_path.IndexOf('/') + 1);
                material_path = material_path.Substring(0, material_path.LastIndexOf('.'));

                Formatter.Serialize(Stream_, material_path);
            }

            // Serialize all non-moveables
            var non_moveables = GetComponentsInChildren<NonMoveableObjectComponent>();
            foreach (var non_moveable in non_moveables)
                non_moveable.Save(Formatter, Stream_);
        }