41 lines
909 B
C#
41 lines
909 B
C#
|
// 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 )
|
||
|
{
|
||
|
if( !Preferences.GlobalUpdateOnSceneSave )
|
||
|
return 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;
|
||
|
}
|
||
|
}
|
||
|
}
|