summaryrefslogtreecommitdiff
path: root/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/SceneSaveCallback.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/SceneSaveCallback.cs')
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/SceneSaveCallback.cs37
1 files changed, 37 insertions, 0 deletions
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/SceneSaveCallback.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/SceneSaveCallback.cs
new file mode 100644
index 00000000..56e24518
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/SceneSaveCallback.cs
@@ -0,0 +1,37 @@
+// Amplify Shader Editor - Visual Shader Editing Tool
+// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
+
+namespace AmplifyShaderEditor
+{
+ // Catch when scene is saved (Ctr+S) and also save ase shader
+ public class SceneSaveCallback : UnityEditor.AssetModificationProcessor
+ {
+ private const string UnityStr = ".unity";
+
+ static string[] OnWillSaveAssets( string[] paths )
+ {
+ bool canSave = false;
+
+ if ( paths.Length == 0 )
+ {
+ canSave = true;
+ }
+ else
+ {
+ for ( int i = 0; i < paths.Length; i++ )
+ {
+ // Only save shader when saving scenes
+ if ( !string.IsNullOrEmpty( paths[ i ] ) && paths[ i ].Contains( UnityStr ) )
+ {
+ canSave = true;
+ break;
+ }
+ }
+ }
+ if ( canSave && UIUtils.CurrentWindow )
+ UIUtils.CurrentWindow.SetCtrlSCallback( false );
+
+ return paths;
+ }
+ }
+}