IgnoreTypes.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334
  1. using System;
  2. using UnityEditor;
  3. using UnityEditorInternal;
  4. using UnityEngine;
  5. namespace Asset_Cleaner {
  6. static class IgnoreTypes {
  7. public static bool Check(string path, out Type type) {
  8. type = AssetDatabase.GetMainAssetTypeAtPath(path);
  9. if (type == null) return false;
  10. var conf = Globals<Config>.Value;
  11. if (type.IsAssignableFromInverse(typeof(MonoScript))) return true;
  12. if (type.IsAssignableFromInverse(typeof(DefaultAsset))) return true;
  13. if (conf.IgnoreScriptable && type.IsAssignableFromInverse(typeof(ScriptableObject))) return true;
  14. if (type.IsAssignableFromInverse(typeof(Shader))) return true;
  15. if (type.IsAssignableFromInverse(typeof(ComputeShader))) return true;
  16. if (type.IsAssignableFromInverse(typeof(ShaderVariantCollection))) return true;
  17. #if UNITY_2019_3_OR_NEWER
  18. if (type.IsAssignableFromInverse(typeof(UnityEngine.Experimental.Rendering.RayTracingShader))) return true; // todo: track of Experimental namespace
  19. #endif
  20. if (type.IsAssignableFromInverse(typeof(TextAsset))) return true;
  21. if (type.IsAssignableFromInverse(typeof(AssemblyDefinitionAsset))) return true;
  22. if (type.IsAssignableFromInverse(typeof(UnityEngine.U2D.SpriteAtlas))) return true;
  23. if (conf.IgnoreMaterial && type.IsAssignableFromInverse(typeof(Material))) return true;
  24. return false;
  25. }
  26. }
  27. }