public void UpdateAsset() { if (selectedGuid != null && graphObject != null) { var path = AssetDatabase.GUIDToAssetPath(selectedGuid); if (string.IsNullOrEmpty(path) || graphObject == null) { return; } ShaderGraphAnalytics.SendShaderGraphEvent(selectedGuid, graphObject.graph); var oldShader = AssetDatabase.LoadAssetAtPath <Shader>(path); if (oldShader != null) { ShaderUtil.ClearShaderMessages(oldShader); } UpdateShaderGraphOnDisk(path); if (GraphData.onSaveGraph != null) { var shader = AssetDatabase.LoadAssetAtPath <Shader>(path); if (shader != null) { GraphData.onSaveGraph(shader, (graphObject.graph.outputNode as MasterNode).saveContext); } } } UpdateTitle(); }
// returns true if the asset was succesfully saved public bool SaveAsset() { bool saved = false; if (selectedGuid != null && graphObject != null) { var path = AssetDatabase.GUIDToAssetPath(selectedGuid); if (string.IsNullOrEmpty(path) || graphObject == null) { return(false); } if (GraphUtil.CheckForRecursiveDependencyOnPendingSave(path, graphObject.graph.GetNodes <SubGraphNode>(), "Save")) { return(false); } ShaderGraphAnalytics.SendShaderGraphEvent(selectedGuid, graphObject.graph); var oldShader = AssetDatabase.LoadAssetAtPath <Shader>(path); if (oldShader != null) { ShaderUtil.ClearShaderMessages(oldShader); } var newFileContents = FileUtilities.WriteShaderGraphToDisk(path, graphObject.graph); if (newFileContents != null) { saved = true; m_LastSerializedFileContents = newFileContents; AssetDatabase.ImportAsset(path); } OnSaveGraph(path); } UpdateTitle(); return(saved); }