OnBaseGraphDeleted.cs 594 B

123456789101112131415161718192021222324252627
  1. using UnityEngine;
  2. using UnityEditor;
  3. namespace GraphProcessor
  4. {
  5. [ExecuteAlways]
  6. public class DeleteCallback : UnityEditor.AssetModificationProcessor
  7. {
  8. static AssetDeleteResult OnWillDeleteAsset(string path, RemoveAssetOptions options)
  9. {
  10. var objects = AssetDatabase.LoadAllAssetsAtPath(path);
  11. foreach (var obj in objects)
  12. {
  13. if (obj is BaseGraph b)
  14. {
  15. foreach (var graphWindow in Resources.FindObjectsOfTypeAll< BaseGraphWindow >())
  16. graphWindow.OnGraphDeleted();
  17. b.OnAssetDeleted();
  18. }
  19. }
  20. return AssetDeleteResult.DidNotDelete;
  21. }
  22. }
  23. }