public void LoadXml(string file, ref SunGenerator gen) { try { XmlSerializer serializer = new XmlSerializer(typeof(Data)); FileStream stream = new FileStream(file, FileMode.Open); Data data = serializer.Deserialize(stream) as Data; stream.Close(); data.Get(ref gen); gen.Build(); } catch (Exception ex) { Debug.Log("Wrong xml format: " + ex.Message); } }
public override void OnInspectorGUI() { current = this; SunGenerator tTarget = (SunGenerator)target; EditorGUI.BeginChangeCheck(); DrawDefaultInspector(); if (EditorGUI.EndChangeCheck()) { tTarget.Build(); } GUILayout.Space(6); GUILayout.BeginHorizontal(); if (GUILayout.Button(new GUIContent("Save animated", "Save animation to texture and create material"))) { SaveToTextureSunWindow.ShowWindow(this); AssetDatabase.Refresh(); } GUI.enabled = tTarget.ShaderMode != SunGenerator.EModeSM.CPU_2SM3 && tTarget.ShaderMode != SunGenerator.EModeSM.CPU_SM3 && tTarget.ShaderMode != SunGenerator.EModeSM.CPU_SM4 && tTarget.ShaderMode != SunGenerator.EModeSM.LIGHT_CPU; if (GUILayout.Button(new GUIContent("Save material", "Save current material"))) { string path = EditorUtility.SaveFilePanel("", Application.dataPath, target.name, "mat"); MeshRenderer mr = tTarget.GetComponent <MeshRenderer>(); if (path.Length != 0 && mr != null) { Material mat = mr.sharedMaterial; path = path.Replace(Application.dataPath, "Assets"); AssetDatabase.CreateAsset(mat, path); AssetDatabase.Refresh(); } } GUI.enabled = true; GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button(new GUIContent("Load Themplate", "Load parameters to xml"))) { string path = EditorUtility.OpenFilePanel( "Load template from XML", "/Assets/SunShader/Temlpates", "xml"); if (path.Length != 0) { LoadXml(path, ref tTarget); } } if (GUILayout.Button(new GUIContent("Save Themplate", "Save parameters to xml"))) { string path = EditorUtility.SaveFilePanel( "Save template as XML", "/Assets/SunShader/Temlpates", target.name + ".xml", "xml"); if (path.Length != 0) { SaveXml(path, ref tTarget); } } GUILayout.EndHorizontal(); }