//! 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); }
//! 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_); }